首页 > 解决方案 > HttpWebRequest 不会在生产中发送 cookie

问题描述

我正在编写一个 Web 服务客户端,服务器将在身份验证后发出一个 cookie,当 cookie 未过期时,授予访问权限。

发出新请求时,我通过代码创建一个新的 HttpWebRequest 对象:

Dim Wreq As HttpWebRequest
Wreq = WebRequest.CreateHttp(URL)
Wreq.Method = "POST"
If _cookieContainer Is Nothing Then
   Wreq.Headers.Add(_digestHelper.CreateAuthorizationString(_userName, _password, New Uri(URL), Wreq.Method))
   _cookieContainer = New CookieContainer()
End If
Wreq.CookieContainer = _cookieContainer

_cookieContainer 是实例中的私有变量,用于跨 Web 请求共享 cookie。

调用 GetResponse 之前的最后一步是更新请求正文,方法是在 HttpWebRequest 对象的 GetRequestStream 返回的请求流上调用 Write 方法。

我想 CookieContainer 对象托管响应发送的 cookie,并将 CookieContainer 对象分配给新请求以重新发送 cookie。

这在我的开发和测试计算机上运行良好,但是当我部署到生产环境时,HttpWebRequest 不再发送 cookie,这可以由提琴手证明。

操作系统都是 Windows 10,.net 框架都是 4.8。这很奇怪。

任何人都知道这个问题是怎么来的?

标签: .netcookieshttpwebrequest

解决方案


推荐阅读