背景
昨天在公司做项目的时候要在Java代码里面调用网管系统的Restful接口返回Json数据,然后简单的看了一下关于Java中发起Http或者Https请求的几种方式,总结一下。
方法
目前JAVA实现HTTP请求的方法用的最多的有两种:一种是通过HTTPClient这种第三方的开源框架去实现。HTTPClient对HTTP的封装性比较不错,通过它基本上能够满足我们大部分的需求,HttpClient3.1 是 org.apache.commons.httpclient下操作远程 url的工具包,虽然已不再更新,但实现工作中使用httpClient3.1的代码还是很多,HttpClient4.5是org.apache.http.client下操作远程 url的工具包,最新的;另一种则是通过HttpURLConnection去实现,HttpURLConnection是JAVA的标准类,是JAVA比较原生的一种实现方式。
我采用的是org.apache.http.client这个包来做Http请求。然后最开始分别实现了Get,Post,Put,Delete增删改查四种请求方式,后来觉得不妥改成了一个通用的方法。
1 | public synchronized String getCall(String url, String contentType, |
具体的调用
1 | public synchronized boolean login() |
根据实际需要自由更改代码即可。
发起Https请求
Https就是在Http的基础上使用了SSLSocket安全套接字的请求,使用SSL或TLS协议的安全套接字。
如果服务器中没有相关链接的SSL证书,就不能信任此链接,访问不到。所以我们要在请求之前加一个信任管理器,去实现X509TrustManager 这个类。
1 | public static void main(String[] args) throws Exception { |
然后就可以愉快的发起Https请求了。
参考文章
https://www.cnblogs.com/hhhshct/p/8523697.html Java实现Http请求的三种方式
https://blog.csdn.net/guozili1/article/details/53995121 如何在java中发起http和https请求
https://blog.csdn.net/qq_31694651/article/details/52372341 java SSLSocket的详解