Http Post WebRequest超时

时间:2015-07-31 10:42:55

标签: c# post httpwebrequest httpwebresponse

HttpWebRequest request = WebRequest.CreateHttp("http://www.ooredoo.mv/edirectory");
request.Method = "POST";
request.UserAgent = "Mozilla/5.0 (Windows NT 6.3; WOW64; rv:36.0) Gecko/20100101 Firefox/36.0";
request.Accept = "text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8";
request.Referer = "http://www.ooredoo.mv/edirectory";
request.KeepAlive = true;
request.Headers.Add(HttpRequestHeader.Cookie, "PHPSESSID=cu722i6j4kkpm8d6lbp9e3f9t7; BNES_PHPSESSID=G4HHdpBzuOW4x+zrBTytg7K3VC/EPsvp1s8seSUzAXF9wXEIdzNA4a58Scih6NYP6qjl8ndRyTuux1ohMhhbww==");
request.Headers.Add(HttpRequestHeader.AcceptEncoding, "gzip, deflate");
request.Headers.Add(HttpRequestHeader.AcceptLanguage, "en-US,en;q=0.5");
request.ContentType = "application/x-www-form-urlencoded";

string postString = "number=9100000&code=Gfdf&submit=";
byte[] postData = Encoding.ASCII.GetBytes(postString);
request.ContentLength = postData.Length;

using (Stream stream = request.GetRequestStream())
{
    stream.Write(postData, 0, postData.Length);
    stream.Flush();
}

using (HttpWebResponse response = (HttpWebResponse)request.GetResponse()) {//Timeout
    //Some code which uses 'response'
}

但它在request.GetResponse()处不断超时并给我例外:Unhandled Exception: System.Net.WebException: The request was aborted: The operation has timed out.

我可以使用firefox发送相同的请求,没有任何问题,我没有超时。所以这一定是HttpWebRequest的问题 不确定我的代码有什么问题。如果您愿意,可以自己查看网站。

编辑:我使用过wireshark并在发出帖子后请求。它显示5176 380.957168000 192.168.1.2 202.153.85.30 TCP 87 [TCP Retransmission] 56462→80 [PSH, ACK] Seq=637 Ack=26 Win=66048 Len=33[Reassembly error, protocol TCP: New fragment overlaps old data (retransmission?)]

如果我不写入请求流,则服务器返回404错误。所以我的网络连接不是问题。

0 个答案:

没有答案