前两天碰到一个问题,就是请求第三方API时报错(之前都是可以的调用成功的。)报错内容如下:
然后看一下我的请求方法如下:
看了日志才发现,之前传的参数里都是用字母测试调用, 报错这一次是使用了中文传参。
后来发现,Encoding.UTF8.GetByteCount(body);获取的长度是比StreamWriter写入的长度要短几个字节的,所以才造成报(在写入所有字节之前不能关闭流的问题。)
最后定位到代码里的这一句:
request.ContentLength = Encoding.UTF8.GetByteCount(body);然后我把这个一句给注释掉,就可以~~~~了...