0

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

1 回答 1

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。

于 2013-06-03T19:11:29.297 回答