我用HttpWebRequest的post方法时,出现这样的错误信息:"远程服务器返回错误: (401) 未经授权",经过上网查找了些资料.发现需要加上以下两句代码:
Request.PreAuthenticate = true;
NetworkCredential networkCredential = new NetworkCredential(UserName, Password); 我按以上所修改,弄了一下午还是不行..以下是我的代码,麻烦高手帮忙看看,我到底是那里写错了~public string GetPostData(string url, string urlHead, string inputData,string uName,string uPwd)
{
NetworkCredential credential;
try
{
HttpWebRequest request = (HttpWebRequest)WebRequest.Create(url);
request.Method = "POST";
request.PreAuthenticate = true;
credential = new NetworkCredential(uName, uPwd);
request.Credentials = credential;
request.KeepAlive = true;
request.AllowAutoRedirect = true; //允许重定向
request.ContentType = "application/x-www-form-urlencoded";
request.Headers.Add("Accept-Language", "zh-cn,en-us;q=0.5");
request.Headers.Add("Accept-Encoding", "gzip, deflate");
request.Referer = urlHead; byte[] bytes = Encoding.GetEncoding(name).GetBytes(inputData);
request.ContentLength = bytes.Length;
Stream requestStream = request.GetRequestStream();
}
}
Request.PreAuthenticate = true;
NetworkCredential networkCredential = new NetworkCredential(UserName, Password); 我按以上所修改,弄了一下午还是不行..以下是我的代码,麻烦高手帮忙看看,我到底是那里写错了~public string GetPostData(string url, string urlHead, string inputData,string uName,string uPwd)
{
NetworkCredential credential;
try
{
HttpWebRequest request = (HttpWebRequest)WebRequest.Create(url);
request.Method = "POST";
request.PreAuthenticate = true;
credential = new NetworkCredential(uName, uPwd);
request.Credentials = credential;
request.KeepAlive = true;
request.AllowAutoRedirect = true; //允许重定向
request.ContentType = "application/x-www-form-urlencoded";
request.Headers.Add("Accept-Language", "zh-cn,en-us;q=0.5");
request.Headers.Add("Accept-Encoding", "gzip, deflate");
request.Referer = urlHead; byte[] bytes = Encoding.GetEncoding(name).GetBytes(inputData);
request.ContentLength = bytes.Length;
Stream requestStream = request.GetRequestStream();
}
}
IE能正常登陆,用HttpWebRequest怎么可能不行呢?
加上这句试试吧!
hi,那你再试试加个域名参数以后是否可用。