当浏览器使用相同的用户代理字符串返回内容时,为什么C#中的httpwebrequest没有内容并返回状态OK?
我正在使用以下命令执行web请求:当浏览器使用相同的用户代理字符串返回内容时,为什么C#中的httpwebrequest没有内容并返回状态OK?,c#,C#,我正在使用以下命令执行web请求: // create http request HttpWebRequest req = (HttpWebRequest)WebRequest.Create(url); // set user agent req.UserAgent = "Mozilla/5.0 (X11; U; Linux i586; de; rv:5.0) Gecko/20100101 Firef
// create http request
HttpWebRequest req = (HttpWebRequest)WebRequest.Create(url);
// set user agent
req.UserAgent = "Mozilla/5.0 (X11; U; Linux i586; de; rv:5.0) Gecko/20100101 Firefox/5.0";
req.AllowAutoRedirect = true;
req.MaximumAutomaticRedirections = 3;
// retrieve response
HttpWebResponse rep = (HttpWebResponse)req.GetResponse();
HttpStatusCode stc = rep.StatusCode;
在某些URL(但不是所有URL)上,状态返回OK,内容长度为-1,但如果直接使用Firefox,则会呈现
是否需要为C#提供一个设置?示例链接如果您从
HttpWebResponse.ContentLength
获取内容长度,那么-1的值并不意味着没有内容-它意味着“一直阅读,直到流结束”(因为内容长度
标题尚未设置)。内容长度为零意味着没有内容
基本上,如果你想看内容,你应该试着阅读:)