使用httpwebrequest时控制身份验证

时间:2017-04-21 00:17:08

标签: c# windows-10-universal system.net.httpwebrequest

我一直在使用HttpWebRequest(目前作为通用Windows应用程序工作)从家庭网络上的IP安全摄像头获取JPEG快照。我最近得到了几个新的相机,认证似乎有点乱。看看Wireshark的跟踪,差异似乎如下:

第一个HTTP GET没有凭据发送,相机以401 Unauthorized响应 第二个HTTP GET现在具有编程的凭证,然后摄像机以数据

响应

在后续请求中,程序似乎会自动发送带有凭据的HTTP GET。不幸的是,相机似乎并不喜欢这样,并以401 Unauthorized响应(即使请求格式与刚刚工作的格式相同)。

如果我退出程序并重新开始,我会看到与上面相同的初始序列(即没有凭据的HTTP GET,后跟带有凭据的HTTP GET),我得到了有效的响应。

Net我只能在每次调用程序时获得一个成功的请求。我的理论是,摄像机因此依赖于看到没有凭据的请求来重置内部的东西(可能是一些错误?)。

无论相机在做什么,在HTTP GET期间发送凭据时是否有专门控制的方式?

到目前为止,代码非常简单:

HttpWebRequest myHttpWebRequest = WebRequest.CreateHttp(requestURL); myHttpWebRequest.Credentials = new NetworkCredential(requestUser,requestPassword);

每次想要获取新快照时都会执行此操作,但即使每次都是新的HttpWebRequest,凭证也会在下次发出请求时默认缓存并重新显示。

0 个答案:

没有答案