如何在发出http请求时传递所有cookie?

时间:2013-06-03 19:00:06

标签: c# cookies httprequest

我在安全环境内对服务点进行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;

1 个答案:

答案 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。