首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > .NET > C# >

HttpWebRequest.GetResponse()取不到内容解决办法

2014-01-03 
HttpWebRequest.GetResponse()取不到内容服务端是C++,客户端是C#,服务端在8888端口监听,C#用以下代码获取

HttpWebRequest.GetResponse()取不到内容
服务端是C++,客户端是C#,服务端在8888端口监听,C#用以下代码获取响应:
HttpWebRequest httpReq = (HttpWebRequest)WebRequest.Create("http://192.168.20.160:8888/cpe");
HttpWebResponse httpRes = (HttpWebResponse)httpReq.GetResponse();
if (httpRes.StatusCode == HttpStatusCode.OK)
{
    Console.WriteLine("GET:{0}", httpRes.Headers);
}
httpRes.Close();
现在通过wireshark抓包看到,服务端发送了200 OK的回应包,但是C#这边总是在httpReq.GetResponse()这句出问题:
1. 提示连接被意外关闭(C++服务端发送完200 OK后会close socket),并且还会再发GET请求;
2. 如果把C++的close socket注释掉,就会提示连接超时。

这两种情况下都打不出httpRes.Headers,请问这到底是哪里的问题?还是我用的不对?请指教,谢谢。
[解决办法]
连到192.168.20.160:8888

再发送GET的包对应的字符串
[解决办法]
HttpWebRequest的原理应该和IE一样的,都是微软的产品,核心自然是同一个。如果IE都不行,看来C++那边发送的时候并未完全遵循http协议,只是模仿http协议,那么用完全遵循http协议的HttpWebRequest请求就通不过了。

热点排行