我正在尝试发布到 asp.net 网页并接收生成的 xml。
这是我的代码:
Uri url = new Uri("https://www.dmr.nd.gov/oilgas/feeservices/getcpfilesxml.asp");
HttpWebRequest request = (HttpWebRequest)WebRequest.Create(url);
request.Credentials = nc;
request.Method = "POST";
Byte[] postBuffer = Encoding.UTF8.GetBytes("FileNumber=04113");
request.ContentLength = postBuffer.Length;
request.ContentType = "text/xml; Charset=UTF-8";
using (Stream postData = request.GetRequestStream())
{
postData.Write(postBuffer, 0, postBuffer.Length);
}
HttpWebResponse response = (HttpWebResponse)request.GetResponse();
当我运行它时,我收到一个 HTTP 错误 401.2 错误解释:您无权使用您提供的凭据查看此目录或页面,因为您的 Web 浏览器正在发送未配置 Web 服务器的 WWW-Authenticate 标头字段接受。
在网站上使用 asp.net 页面时,这是我在 Fiddler 中获得的标题信息:
HTTP/1.1 200 OK
Date: Tue, 01 May 2012 15:34:44 GMT
Server: Microsoft-IIS/6.0
X-Powered-By: ASP.NET
Content-Length: 4325
Content-Type: text/xml; Charset=UTF-8
Cache-control: private
Keep-Alive: timeout=15, max=99
Connection: Keep-Alive
使用此身份验证信息:
- 不存在 Proxy-Authenticate 标头。
- 不存在 WWW-Authenticate Header。
运行我的应用程序时,这是我在 Fiddler 中获得的标头信息:
HTTP/1.1 200 OK
Date: Tue, 01 May 2012 17:18:04 GMT
Server: Microsoft-IIS/6.0
X-Powered-By: ASP.NET
Content-Length: 124
Content-Type: text/xml; Charset=UTF-8
Cache-control: private
Set-Cookie: ASPSESSIONIDASADTBCS=JEBNCDNDNEPNLEBIEAFHENJF; path=/
X-Pad: avoid browser bug
使用此身份验证信息:
- 不存在 Proxy-Authenticate 标头。
- 存在 WWW-Authenticate 标头:Basic realm="www.dmr.nd.gov"
如何避免 WWW-Authenticate Header 被推倒?