1

Httpwebrequest を使用して外部のライブ ミーティングの URL にアクセスしようとすると、401 の無許可エラーが発生します。同じコードがローカル システムで動作しています。

コード:

     HttpWebRequest myReq = (HttpWebRequest)WebRequest.Create(PostingUrl);
     CredentialCache CredMCCache = new CredentialCache();
        myReq.PreAuthenticate = true;
        CredMCCache.Add(new System.Uri(PostingUrl),"Basic",new    System.Net.NetworkCredential("username","password")
 myReq.Credentials = CredMCCache;
        myReq.KeepAlive = true;
        myReq.UserAgent = "Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 5.1; .NET CLR 1.1.4322; .NET CLR 2.0.50727; .NET CLR 3.0.04506.30; .NET CLR 3.0.04506.648; .NET CLR 3.5.21022)";
        myReq.Accept = "*/*";
        myReq.Headers.Add("Accept-Language", "en-us");
        myReq.Headers.Add("Accept-Encoding", "gzip, deflate");
        WebProxy proxyObject = new WebProxy("proxy url with port", false);
        myReq.Proxy = proxyObject;
        myReq.Proxy.Credentials = CredentialCache.DefaultNetworkCredentials;
        myReq.Method = "GET";
        HttpWebResponse myResp = null;


            // Get the response from the conference center
            myResp = (HttpWebResponse)myReq.GetResponse();

上記の行でエラーが発生しています。どんなポインタも役に立ちます。

4

1 に答える 1

0

プロキシを設定する理由、たとえば

myReq.Proxy = proxyObject;

これを行う必要がありますか?実際に企業プロキシを使用するHttpWebRequest場合は、IE から設定 (存在する場合) を取得するため、プロキシを設定する必要はありません。

次に、基本認証を使用してリモート サーバーで認証しようとしていますか? あなたのように見えるので、代わりにこれを使用して、ヘッダーに認証の詳細を設定します

string authInfo = userName + ":" + userPassword;
authInfo = Convert.ToBase64String(Encoding.Default.GetBytes(authInfo));
myReq.Headers["Authorization"] = "Basic " + authInfo;
于 2012-08-01T15:27:19.420 に答える