HttpURLConnection.getInputStream()阻塞及405错误

后台使用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");

 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
根据你提供的引用内容,问题是关于使用`new InputStreamReader(connection.getInputStream(),"UTF-8")`的乱码问题的解决方法。 回答:引发乱码问题的原因可能有三种情况。首先,数据库表的字符集设置错误。可以通过使用navicat工具连接数据库,并找到要修改默认字符集的表格,然后将字符集改为所需的utf8。其次,由于未添加编码过滤器导致SpringMVC接收参数时造成乱码。要解决这个问题,需要确保所有页面的编码都是utf-8,并检查浏览器和Eclipse的编码设置。最后,代码中可能涉及到byte数组转换为String时出现问题。在这种情况下,需要检查代码中的相关转换逻辑。所以,为了解决乱码问题,你应该先检查数据库表的字符集设置是否正确,然后确保页面的编码是utf-8,并对相关代码进行适当的调整。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* *2* [使用BufferedReader处理HttpURLConnection.getInputStream()出现阻塞的问题](https://blog.csdn.net/u013300579/article/details/79084180)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v92^chatsearchT3_1"}}] [.reference_item style="max-width: 50%"] - *3* [InputStreamReader乱码](https://blog.csdn.net/m0_38101255/article/details/109923076)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v92^chatsearchT3_1"}}] [.reference_item style="max-width: 50%"] [ .reference_list ]
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值