人力検索はてな
モバイル版を表示しています。PC版はこちら
i-mobile

はてなブックマークAPIを使って、はてブを投稿する機能をC#で書いていますが、動きません。書いたのは下のソースです。
http://d.hatena.ne.jp/tomity/20080213/1202890384

原因はなんでしょうか。どうなおせば正しく動くでしょうか。

●質問者: tomity
●カテゴリ:コンピュータ
✍キーワード:API C# はてなブックマーク はてブ ソース
○ 状態 :終了
└ 回答数 : 1/1件

▽最新の回答へ

1 ● oldriver
●60ポイント

一般的に得られる情報なので、ご検討済みかもしれませんが。

<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;

調べていただきありがとうございました。

関連質問


●質問をもっと探す●



0.人力検索はてなトップ
8.このページを友達に紹介
9.このページの先頭へ
対応機種一覧
お問い合わせ
ヘルプ/お知らせ
ログイン
無料ユーザー登録
はてなトップ