后台使用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");
我们有一个项目中用到了多个子项目,即将多个子项目的连接地址整合在一起。在客户部署环境中,有一个主终端,负责接受用户登陆,在登陆时,由用户选择最终要登陆的子系统。当输入登陆信息之后,由主终端负责解析用户名和密码,待验证通过之后,再通过主终端负责将用户信息直接发往子系统并通过子系统接口转入到后台操作界面。整个流程就类似于一个统一授权中心,由主终端负责用户授权和访问,在获得授权之后,就可以直接操作子系统...
在项目中,使用feignClient 进行http 服务调用,feignClient的默认连接方式为
HttpURLConnection
,因为
HttpURLConnection
没有连接池,并发高的时候,会有一定的网络开销,在做项目优化的时候,替换改为okHttp以便复用其连接池。我们作为调用方,表象是用的get请求,实际走的是post请求,所以没有影响,后面改为okHttp后,okHttp不会做这种特殊的转换,所以我们的请求还是get请求,故而就会有问题了。
奇葩事情年年有,今天特别多.以前就进过
HttpURLConnection
的坑,今天又进去了.
在早上编代码调试的时候,发现了这样一个问题,我用GET请求提交数据给服务器,服务器返回我405.明明是GET请求,在服务器端的日志上,却显示我POST请求,百思不得其解!
先解释下405,
·405 - 用来访问本页面的 HTTP 谓词不被允许(方法不被允许)
然后附上GET请求的代码:
其实问题很简单,就是很正常的
HttpURLConnection
POST连接,当getResponseCode为
HttpURLConnection
.HTTP_OK(200)和
HttpURLConnection
.HTTP_CREATED(201)时没有任何问题。
import java.io.BufferedReader;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.io.PrintWriter;
import java.net.
HttpURLConnection
;
import java.net.URL;
public class ToInter...
我需要从第三方Web应用程序UI获取内容,但在登录后,站点会重定向到许多页面。我不了解如何从上次打开的页面检索数据。目前我接收的in.readLine()方法如果我使用“OPTIONS”而不是GET则返回null。如果我使用GET然后
错误
405。Rest Client通过GET方法显示连接成功,并将其重定向到所需页面。请建议。我通过URLConnection连接到urlHttpsURLConnec...
写在前面:首先,网上90%的解决方法是在使用
getInputStream
()之前先getResponseCode()获取状态码进行判断:如果出错,就用getErrorStream();不出错就用
getInputStream
()。不得不说这种方法脑洞真奇怪。既然你
getInputStream
()出错了,返回的状态码不对,你就应该去从根本解决问题啊,换了个getErrorStream()去获取数据,要么获取到的是空的,要么就是对应的状态码数据,比如400,那就是bad request,404,那就是not fo
文章目录更多精彩背景:一、
错误
场景还原全局异常拦截器:HttpRequestUtil工具类方法(用来向服务端发起请求):二、
错误
定位三、解决方案修改下HttpRequestUtil发送请求的工具类:作者免费源码福利,更多推荐,欢迎下载学习
更多精彩请访问:http://www.gzdangfu.com
服务端项目中通过全局异常拦截器进行异常处理,但进行单元测试发现用java原生H...
3.1、请求行
请求行以一个方法符号开头,后面跟着请求 URI 和协议的版本,以 CRLF (表示回车换行)作为结尾。请求行以空格分隔,除了作为结尾的 CRLF 外,不允许出现单独的 CR 或 LF 字符。格式如下:
Method Request-URI...