【发布时间】:2010-08-09 23:13:14
【问题描述】:
我正在尝试访问 REST Web 服务,但是我的代码无法正常工作并不断抛出 HTTP 401 错误
请参阅来自 Wireshark 的初始 ssl 请求的示例屏幕截图:
这是来自对具有相同详细信息的相同网址的 Curl 调用。问题是在我的 VB.NET 版本下,缺少 SSL 数据包的“扩展:server_name”(和相关)部分,我相信这会导致服务器在接下来的几个数据包中没有回复服务器密钥交换。
下面是VB.NET代码
Dim webRequest As HttpWebRequest = DirectCast(System.Net.WebRequest.Create(UrlString), HttpWebRequest)
webRequest.Method = "GET"
webRequest.ContentType = "application/x-www-form-urlencoded"
webRequest.Credentials = New NetworkCredential(username, password)
Dim response As HttpWebResponse = DirectCast(webRequest.GetResponse(), HttpWebResponse)
这在最后一行失败(HTTP 401 错误),问题似乎与我的代理无关,并且服务器的用户凭据是正确的,因为此请求来自 Curl 和 wget。
我已经尝试设置 AuthenticationLevel 以及手动设置 Authorization 标头,PreAuthenticate 似乎也没有改变这个问题。
【问题讨论】:
标签: .net rest ssl https httpwebrequest