HttpURLConnection.getInputStream()阻塞及405错误

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/dongyuxu342719/article/details/82886668

后台使用http请求获取其他服务的数据,使用GET请求在url后面拼接参数发送请求。在本地编写对端的测试接口进行测试。每次代码走到HttpURLConnection对象的getInputStream()方法时都会阻塞,在测试接口内打的断点也没有走到,然后尝试通过浏览器直接输入url请求接口成功进入断点。。。

后来反复测试无意中将接收请求的接口内断点都去掉,http请求竟然执行成功。。。有没有大神解释下原因,断点还会影响到接受请求吗。。

还遇到一个错误是我使用的是GET请求,一开始报了

java.io.IOException: Server returned HTTP response code: 405 for URL: http://127.0.0.1:8080/

错误,原因是将请求参数拼接串通过HttpURLConnection的getOutputStream()发送了

outputStream = httpUrlConn.getOutputStream();
outputStream.write(attachments.getBytes(chartSet));
outputStream.flush();
outputStream.close();

这个方法只适合于POST请求发送参数,GET请求还是通过在url后面拼接来发送。

项目框架使用的是SpringMVC,在接收请求的方法注解上使用如下配置:

//测试响应http请求
@RequestMapping(value="/dockKFOrderData",method=RequestMethod.GET)
public void dockKFOrderData(){}

因此限制了该接口只接受GET请求。如果设置HttpURLConnection的请求方法是POST,也会导致请求失败。

httpUrlConn.setRequestMethod("POST");

猜你喜欢

转载自blog.csdn.net/dongyuxu342719/article/details/82886668
405