昨天使用了http请求服务,用的是HttpWebRequest来创建的http连接。
结果总是在获取服务器响应状态时出现异常,下面是出异常的代码:
try
{
HttpWebRequest request = ar.AsyncState as HttpWebRequest;
HttpWebResponse response = request.EndGetResponse(ar) as HttpWebResponse;
using (var stream = response.GetResponseStream())
{
StreamReader reader = new StreamReader(stream);
string msg = reader.ReadToEnd();
}
}
catch (Exception e)
{
string a = e.ToString();
}
在执行
HttpWebResponse response = request.EndGetResponse(ar) as HttpWebResponse;
这一句时报异常:
The remote server returned an error: NotFound.
参考了部分资料,仍然是解决不了这个问题。
后来调整了post请求中的参数,竟然好了,返回状态码终于是200。
主要原因是服务器这边对post参数字段有一些特定的要求,比如必须是多少长度,或者不能遗漏哪个字段等等。
奇怪的是,如果是参数错误的话,接收的状态码应该是601(本服务器定义的状态码,指非法参数),但是它直接抛异常了;然而HttpStatusCode中的枚举量是没有这个值的(2XX 至 5XX),不知道是不是这个问题导致出现的异常。