4

「リモートサーバーがエラーを返しました:(407)プロキシ認証が必要です」という質問に対する回答があったいくつかのWebサイトを参照しました。、しかしどれも役に立ちませんでした。オフィスでのプロキシ認証を確認するためのサンプルコードを作成しました。コードは例外をスローします。

私の要件:-ウェブサイトが何を返すかを確認します。オフィスの外ではコードは正常に機能しますが、オフィスではプロキシが原因で例外がスローされます。新しいNetworkCredentialを使用して資格情報をハードコーディングすると、正常に機能します。

int ResponseCode;
string url = "http://www.msftncsi.com/ncsi.txt";
WebRequest request = WebRequest.Create(url);

request.Credentials = CredentialCache.DefaultCredentials;
using (WebResponse response = request.GetResponse())
 {

   Stream dataStream = response.GetResponseStream();
   StreamReader reader = new StreamReader(dataStream);
   responseFromServer = reader.ReadToEnd();
   ResponseCode = (int)((HttpWebResponse)response).StatusCode;
   reader.Close();
}

ハードコーディングしたくありません。http://social.msdn.microsoft.com/Forums/is/csharpgeneral/thread/c06d3032-dceb-4a1a-bb6a-778fd13a938aでソリューションを参照しましたが、それでも役に立ちませんでした。私は何が欠けていますか?

4

2 に答える 2

9

私は同じ問題を抱えていました、これは私にとってはうまくいきました

request.Proxy.Credentials = CredentialCache.DefaultCredentials;

于 2012-08-08T07:28:51.070 に答える
4

ここにはたくさんのことがあります。資格情報を明示的に設定してみることができます

request.Credentials = new NetworkCredentials(username, password)

プロキシを指定する必要がある場合があります。デフォルトでは、IE プロキシを使用します。あなたはそれを望まないかもしれません

WebRequest webRequest = WebRequest.Create("http://stackoverflow.com/");
webRequest.Proxy = new WebProxy("http://proxyserver:80/",true); 
于 2012-06-21T23:41:34.307 に答える