我在安全环境内对服务点进行http请求调用,因此必须存在某些cookie或请求失败。
当用户登录系统时,他们会设置所有必需的cookie。
如何获取所有Cookie并在我的http请求中传递它们?
var request = (HttpWebRequest)WebRequest.Create(requestUrl);
request.Method = "GET";
request.Timeout = 1000 * 30;
request.ReadWriteTimeout = 1000 * 60;
using (WebResponse webResponse = request.GetResponse())
{
using (Stream responseStream = webResponse.GetResponseStream())
{
if (responseStream == null)
{
}
else
{
using (var reader = new StreamReader(responseStream))
{
responseData = reader.ReadToEnd();
}
}
}
}
return responseData;
答案 0 :(得分:0)
您听起来像是在构建反向代理。 Code Project有一篇关于如何完成这个http://www.codeproject.com/Articles/18490/Reverse-Proxy-in-C-NET-v2-0的好文章,其中包括将cookie从一个请求复制到另一个请求。
请注意,您只会收到托管该应用的域名的Cookie。如果您将请求代理到其他域,则发送请求的浏览器不会向您发送您要定位的域的Cookie。
例如,如果您的应用位于http://dev.local/并且您要将请求转发至https://stackoverflow.com/,则您的请求中的域stackoverflow.com将不会包含任何Cookie。