问题描述
- 关于.NET HTTP的POST请求获取报文体的问题
-
在WCF中,用restful做接口,方法是调通了,问题在于获取文件流的时候,之前用WebService的时候,代码为:HttpRequest request = HttpContext.Current.Request;
Stream reqStream = request.InputStream;
StreamReader streamReader = new StreamReader(reqStream, System.Text.Encoding.UTF8);
string requestJson = streamReader.ReadToEnd();
现在换成了WCF rest,不能使用request.InputStream。 报错:在调HttpRequest.GetBufferlessInputStream 之后,此方法或属性不受支持。
所以改为:
HttpRequest request = HttpContext.Current.Request;
Stream reqStream = request.GetBufferlessInputStream();
StreamReader streamReader = new StreamReader(reqStream, System.Text.Encoding.UTF8);
string requestJson = streamReader.ReadToEnd();
问题就在于,改完以后,streamReader.ReadToEnd();获取不到报文体的数据了,返回为空字符串。 找了一下午的解决方案,还是找不到,求大神解答。感激不尽~
解决方案
先用fiddler调试,看看你服务器返回了什么,如果你的请求就有问题,服务器没有返回,那你就是瞎忙了。
解决方案二:
提交的数据,格式,类型等看是否合法,否则服务器就会返回错误信息。
解决方案三:
发起请求是后的默认值设置了吗?