System.Net.HttpWebRequest request = (HttpWebRequest)WebRequest.Create(url);
// 可以将 Method 属性设置为任何 HTTP 1.1 协议谓词:GET、HEAD、POST、PUT、DELETE、TRACE 或 OPTIONS。
request.Method = "POST";
request.ContentType = "application/json";
System.IO.Stream dataStream = request.GetRequestStream();
System.Net.HttpWebResponse response = (HttpWebResponse)request.GetResponse();
dataStream = response.GetResponseStream();
System.IO.StreamReader reader = new System.IO.StreamReader(dataStream, Encoding.UTF8);
string responseFromServer = reader.ReadToEnd();
reader.Close();
reader.Dispose();
dataStream.Close();
dataStream.Dispose();
response.Close();
------解决思路----------------------
ReadToEnd是阻塞的,服务器一直不返回所以就不走了
------解决思路----------------------
GetResponse这个方法也是
------解决思路----------------------
等上一段时间就可以了,要么timeout,要么返回数据
------解决思路----------------------
根据msdn的解释
ReadToEnd 假定流在到达末尾时会知道已到达末尾。对于交互式协议(服务器仅当被请求时才发送数据而且不关闭连接),ReadToEnd 可能被无限期阻止,应避免出现这种情况。
1、是不是服务器一直无响应?
2、是不是相应内容超级长,流一直处于度的状态?
3、我目测你的
request.Method = "POST";应该改成
request.Method = "GET";
------解决思路----------------------
TimeOut设的小一点
突然就超时了,你指的是什么突然就超时了?