繁体   English   中英

拨打http请求时如何传递所有cookie?

[英]How to pass all cookies when making http request call?

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

您听起来好像正在构建反向代理。 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。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM