http://d.hatena.ne.jp/tomity/20080213/1202890384
原因はなんでしょうか。どうなおせば正しく動くでしょうか。
一般的に得られる情報なので、ご検討済みかもしれませんが。
<1. プロキシ説>
status code 417 についてググってみると、プロキシサーバが悪さをしている可能性が高いという記述を多く見受けます。もしプロキシを使っていたらプロキシ無しの環境で試すか、他のプロキシに変えてみたら状況は変化しないでしょうか。
<2. その他>
リクエストヘッダとレスポンス(ヘッダとボディ)がわかれば、推測しやすそうな気もしますね。
というのも、417はリクエストのExpectヘッダフィールドに対するエラーだからです。手っ取り早く、Fiddlerでも使って調べてみてはいかがでしょうか。
参考:417 Expectation Failed
http://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html#sec10.4.1...
Expectヘッダを調べたところ、"100-continue"という値が設定されていました。これは調べたところステータスコード100 continueを利用できることをサーバーに求めるヘッダでした。はてなのサーバーがステータスコード100を利用できないため起こっていたエラーのようです。
ですので、以下のコードを足すことで、動くようになりました。
ServicePoint currentServicePoint = webreq.ServicePoint;
if (currentServicePoint == null) {
WebProxy proxy = WebProxy.GetDefaultProxy();
currentServicePoint = ServicePointManager.FindServicePoint(postURI, proxy);
}
currentServicePoint.Expect100Continue = false;
調べていただきありがとうございました。