0

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

第一个 HTTP GET 是在没有凭据的情况下发送的,相机会以 401 Unauthorized

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

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

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

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

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

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

它每次想要获取新快照时都会执行此操作,但即使每次都是新的 HttpWebRequest,凭据似乎会在下次发出请求时被缓存并默认重新呈现。

4

0 回答 0