0

我收到 404 Not Found 错误,因为我的应用程序不像浏览器那样处理 cookie。由于我正在访问的服务器是“主动-主动”的,Akamai 使用每个服务器返回的 Cookie 来保持粘性,因此 Web 浏览器知道返回 cookie。

如何更新我的应用程序以返回发送给我的 Cookie,就像浏览器一样?

我之前使用的是 WebClient,但后来切换到 HttpWebRequest/Response 来下载响应流。这是我到目前为止所拥有的,可用于访问和下载文件。

HttpWebRequest webReq = (HttpWebRequest)WebRequest.Create(this.url);
webReq.KeepAlive = true;
webReq.Method = "GET";
webReq.ContentType = "text/html";
webReq.Accept = "text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8";
webReq.Headers.Add("Accept-Language", "en-US,en;q=0.5");

HttpWebResponse webResp = (HttpWebResponse)webReq.GetResponse();
System.IO.Stream rxStream = webResp.GetResponseStream();

Encoding enc = System.Text.Encoding.GetEncoding(1252);
System.IO.StreamReader respStream = new System.IO.StreamReader(rxStream, enc);

string myString = respStream.ReadToEnd();
4

1 回答 1

1

您可以使用CookieContaineronHttpWebRequest并将HttpWebResponse您从服务器接收到的 cookie 传递给您的下一个请求,就像浏览器一样。一些文档和示例在这里

还有一些使用 cookie 的方法WebClient使用 CookieContainer 和 WebClient 类

于 2013-06-17T19:55:54.630 回答