2012-08-01 45 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;