我正在尝试使用Httpwebrequest访问外部live meeting 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();我在上面的代码行中得到了错误。任何指针都会很有帮助。
发布于 2012-08-01 23:27:19
为什么要设置代理,例如
myReq.Proxy = proxyObject;
你需要这样做吗?如果您确实要通过企业代理,则不需要为HttpWebRequest设置代理,因为它将从IE获取设置(如果有)。
其次,您是否正在尝试使用基本身份验证向远程服务器进行身份验证?看起来您是这样的,所以请使用它来设置标头中的身份验证详细信息
string authInfo = userName + ":" + userPassword;
authInfo = Convert.ToBase64String(Encoding.Default.GetBytes(authInfo));
myReq.Headers["Authorization"] = "Basic " + authInfo;https://stackoverflow.com/questions/11761834
复制相似问题