我正在从VB应用程序访问REST Web服务。我创建了一个HttpWebResponse对象,并调用GetRequestStream就可以了,但是当我调用GetResponse时,我得到了一个401异常。使用HttpWebRequest处理身份验证(.NET)
这里是我的代码(修改发布):
Dim webRequest = DirectCast(WebRequest.Create(endpoint), HttpWebRequest)
webRequest.Method = "POST"
webRequest.ContentLength = contentLength
webRequest.ContentType = "application/x-www-form-urlencoded"
request.Credentials = New NetworkCredential(Username, Password)
' Works fine
Using stream As Stream = webRequest.GetRequestStream()
stream.Write(data, 0, data.Length)
End Using
' Barfs
Dim response As HttpWebResponse = DirectCast(webRequest.GetResponse(), HttpWebResponse)
我,只要我称之为 “webRequest.GetResponse()” 获得了401例外。响应中有一个“WWW-Authenticate”标题,并带有相应的领域。我已经尝试设置“webRequest.PreAuthenticate = True”,以及手动设置标题为“webRequest.Headers.Add(HttpRequestHeader.Authorization,_authheader)”
我似乎无法用Fiddler/Wireshark监视这些请求等等,因为这是SSL流量,我相信有一种方法可以监控它,但我还没有发现它。
由于提前,
--Connor
感谢提示 – 2009-07-02 21:29:39