C# と VB.NET の質問掲示板

ASP.NET、C++/CLI、Java 何でもどうぞ

C# と VB.NET の入門サイト

Re[2]:


(過去ログ 113 を表示中)

[トピック内 3 記事 (1 - 3 表示)]  << 0 >>

■66719 / inTopicNo.1)  C++.NetでWebClientのOpenReadについて
  
□投稿者/ 遠山 (1回)-(2013/05/19(Sun) 05:53:36)

分類:[.NET 全般] 

VC++.NetでWebClientのOpenReadを使用していますが、OpenReadで
System.Net.WebException: リモート サーバーがエラーを返しました: (503) サーバーを使用できません
エラーが出てしまいます。

ソースはこんな感じになります。
Net::WebClient *wc = new Net::WebClient();
IO::Stream *st = wc->OpenRead(l_pstrAllOffersUrl);

l_pstrAllOffersUrlはこちらになります。
http://www.amazon.com/gp/offer-listing/B0002YN33K%3FSubscriptionId%3DAKIAINDOLGIRUCVO6DSQ%26tag%3DPutYourAssociateTagHere%26linkCode%3Dxm2%26camp%3D2025%26creative%3D386001%26creativeASIN%3DB0002YN33K

www.amazon.jpやその他の国は問題は起きません。
どこに問題があるのでしょうか?
解決策ご存知の方いませんでしょうか。宜しくお願いします。

引用返信 編集キー/
■66720 / inTopicNo.2)  Re[1]:
□投稿者/ Azulean (165回)-(2013/05/19(Sun) 08:17:04)
2013/05/19(Sun) 08:19:40 編集(投稿者)

サイトによります。

今回のケースでは、対象のサイトは User-Agent がない場合は応答を拒否(503 エラーを返す)する設計・実装のようですね。
User-Agent に有意な値を入れてください。

wc->Headers->Add(System::Net::HttpRequestHeader::UserAgent, /* ここに入れる */);

ブラウザーとの違いを見る際には Fiddler というツールを使うと便利だと思います。
(上記の差分を見つけるために使いました)


なお、上記の対応で今のところは通るようですが、相手先の更新によって将来的にこれだけでは足りなくなる恐れや、指定した User-Agent によっては拒否対応に変わる可能性、つまり、正常に取得できないリスクが残りますので、ご留意ください。
引用返信 編集キー/
■66721 / inTopicNo.3)  Re[2]:
□投稿者/ 遠山 (2回)-(2013/05/19(Sun) 09:36:29)
UserAgentを付け加えたらエラー無く受信できました。有難うございました。

解決済み
引用返信 編集キー/


トピック内ページ移動 / << 0 >>

このトピックに書きこむ

過去ログには書き込み不可

管理者用

- Child Tree -