2012-08-01 50 views
1

我試圖訪問外部實時會議網址使用Httpwebrequest,並獲得401未經授權的錯誤。相同的代碼在我的本地系統中工作。如何通過HttpWebRequest訪問外部實時會議網址

代碼:

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

我收到錯誤在上面的線。任何指針都會有幫助。

回答

0

你爲什麼要設置代理,如

myReq.Proxy = proxyObject;

你需要這樣做嗎?如果你確實要通過公司代理,你不需要爲HttpWebRequest設置代理,因爲它將從IE中獲取設置(如果有的話)。

其次,你是否嘗試使用基本身份驗證與遠程服務器進行身份驗證?它看起來像你一樣,所以用它來代替標題中的驗證詳細信息

string authInfo = userName + ":" + userPassword; 
authInfo = Convert.ToBase64String(Encoding.Default.GetBytes(authInfo)); 
myReq.Headers["Authorization"] = "Basic " + authInfo;