1

好的,如果我有这个权利,我的代码可以在特定的 url 获取 cookie,但是一旦我将 cookie 获取到容器中,我如何通过套接字将它发送到客户端?就像下面直接用于常规 http 页面请求的代码一样。

byte[] buffer = new byte[bz];
rebu = responsestream.Read(buffer, 0, bz);
while (rebu != 0)
{
    soket.Send(buffer, rebu, 0);
    rebu = responsestream.Read(buffer, 0, bz);
}

我的请求/响应代码部分

System.Net.Configuration.HttpWebRequestElement wr = new System.Net.Configuration.HttpWebRequestElement();
wr.UseUnsafeHeaderParsing = true;
HttpWebRequest request = (HttpWebRequest)WebRequest.Create(url);
CookieContainer cookieContainer = new CookieContainer();
request.CookieContainer = cookieContainer;
request.CookieContainer.Add(cookieContainer.GetCookies((Uri)url));
HttpWebResponse response = (HttpWebResponse)request.GetResponse();
Stream responsestream = response.GetResponseStream();
byte[] buffer = new byte[bz];
rebu = responsestream.Read(buffer, 0, bz);
while (rebu != 0)
{
    soket.Send(buffer, rebu, 0);
    rebu = responsestream.Read(buffer, 0, bz);
}

这是我正在编码的代理服务器的一部分,我遇到了 cookie 问题。

C#.net3.5

4

1 回答 1

2

中的 cookieHttpRequest.CookieContainer通过 HTTP 标头转到请求中指定的目标 URL Cookie:。通常,代理不会设置自己的 cookie。您应该检查来自客户端的所有传入 cookie 以传递,但如果服务器为客户端设置自己的 cookie,则无需执行任何特殊操作——它将作为 HTTPSet-Cookie:标头自动成为响应流的一部分。

于 2008-10-07T01:47:09.233 回答