我在模拟请求[POST]一个网站的时候,一直连接不上去,总是提示我”操作超时“
  HttpWebRequest httpWebRequest = null;
            HttpWebResponse httpWebResponse = null;
            try
            {
                byte[] byteRequest = Encoding.Default.GetBytes(postData);//格式化POST数据                httpWebRequest = (HttpWebRequest)HttpWebRequest.Create(url);//发送请求
               // httpWebRequest.CookieContainer = cookieContainer;//填充COOKIE
                //httpWebRequest.ContentType = "application/x-www-form-urlencoded";
                //httpWebRequest.ServicePoint.ConnectionLimit = maxTry;
               ;
                //httpWebRequest.Headers.Add("Accept-Language", "ko,zh-cn;q=0.5");
                //httpWebRequest.Headers.Add("Accept-Encoding", "gzip, deflate");               // httpWebRequest.Referer = "";                //httpWebRequest.Accept = "text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8";
                //httpWebRequest.UserAgent = "Mozilla/5.0 (Windows NT 6.1; rv:20.0) Gecko/20100101 Firefox/20.0";
                httpWebRequest.Method = isPost ? "POST" : "GET";//那种请求?
                httpWebRequest.ContentLength = byteRequest.Length;//获取数据包大小                Stream stream = httpWebRequest.GetRequestStream();//获取流对象
                stream.Write(byteRequest, 0, byteRequest.Length);
                stream.Close();                httpWebResponse = (HttpWebResponse)httpWebRequest.GetResponse();
                //定义数据响应信息
                Stream responseStream = httpWebResponse.GetResponseStream();//获取服务端回发达留信息                StreamReader streamReader = new StreamReader(responseStream, encoding);                string html = streamReader.ReadToEnd();
                streamReader.Close();
                responseStream.Close();
                currentTry = 0;                httpWebRequest.Abort();
                httpWebResponse.Close();                return html;//获取 
            }
            catch (System.Net.WebException e)
            {                Stream stream = httpWebRequest.GetRequestStream();/这句就出问题了
代码片段。HEAD头没问题,我用第三方 POSET模拟软件(HTTPAnalyzerFullV自带)提交的时候HEDA头什么也不设置值提交返回正常(也就是说提交的时候只有一个POST地址。和一个HOST主机属性,)而我用HTTPWEBREQUEST却怎么也访问不了
我抓POST模拟器(HTTPAnalyzerFullV自带)返回的包的时候发现返回头信息有Expires -1 这个标识 难道跟这个有关系?如果有关系HTTPWEQUEREST 应该怎么设置。呢

解决方案 »

  1.   

    我用模拟软件提交的数据 
    请求头POST /signin HTTP/1.1
    Host:sign.XXX.net
    Content-Length:296下面是返回的数据
    HTTP/1.1 200 OK
    Cache-Control: no-store,private
    Pragma: no-cache
    Content-Length: 12761
    Content-Type: text/html
    Expires: Sun, 21 Apr 2013 12:40:42 GMT
    Server: Microsoft-IIS/7.0
    Set-Cookie: NSCHK=f; domain=xxx.net; path=/
    Set-Cookie: NSERR=; expires=Mon, 31-Dec-1979 15:00:00 GMT; domain=xxxx.net; path=/
    P3P: CP='CAO PSA CONi OTR OUR DEM ONL'
    X-UA-Compatible: IE=EmulateIE8
    X-Powered-By: ASP.NET
    Date: Sun, 21 Apr 2013 12:41:41 GMT我用别的软件模拟都能正常返回哈 ,HTTPWEBREQUEST 就一直提示操作超时 我请求头什么也没设置