github地址:
https://github.com/kevinsawicki/http-request
类似python requests包调用简单,不需要处理复杂的数据流。
下面引用同行中文使用说明,
没有maven,可将源码copy出来,就一个文件,参考hub使用说明。
原文链接:
www.jianshu.com
在我们日常工作中,我们需要经常和第三方接口进行交互通信,很多时候我们都是使用http协议进行交互,java原生自带对http的支持(java.net.*),但是使用起来不太方便,除此之外,用的最多的就是apache httpclient工具包。但是个人使用这么久而言,感觉不管是原生的抑或是httpclient,使用起来都不太顺手,也略显复杂
maven引入
<dependency>
<groupId>com.github.kevinsawicki</groupId>
<artifactId>http-request</artifactId>
<version>5.6</version>
</dependency>
例子
发送一个Get请求获取响应报文
String response = HttpRequest.get("http://www.baidu.com").body();
System.out.println("Response was: "+response);
发送一个带查询参数的Get请求获取响应报文
写法1:
HttpRequest request = HttpRequest.get("http://www.baidu.com",true,'q',"baseball gloves","size",100);
System.out.println(request.toString());// GET http://www.baidu.com?q=baseball%20gloves&size=100
写法2:
Map data = new HashMap();
data.put("q", "baseball gloves");
data.put("size", "100");
String resp =HttpRequest.get("http://www.baidu.com")form(data).body();
System.out.println("---------------response parameter:" + resp);
同理,发送Post请求只需把get方法换成Post即可。
发送请求上传附件
HttpRequest request=HttpRequest.post("http://google.com");
request.part("status[body]","Making a multipart request");
request.part("status[image]",newFile("/home/kevin/Pictures/ide.png"));
if(request.ok()){
System.out.println("Status was updated");
}
常用http请求配置
HttpRequest request = HttpRequest.get("https://google.com");
//信任所有证书
request.trustAllCerts();
//信任所有地址
request.trustAllHosts();
//设置请求超时时间
request.connectTimeout(60000);
//设置读取超时时间
request.readTimeout(60000);
以上设置支持Builder模式
String resp = HttpRequest.post("http://www.baidu.com").trustAllCerts().trustAllHosts()
.form(data)
.connectTimeout(60000)
.readTimeout(60000)
.body();
配置http代理
HttpRequest request = HttpRequest.get("https://google.com");
//Configure proxy
request.useProxy("localhost", 8080);
//Optional proxy basic authentication
request.proxyBasic("username", "p4ssw0rd");
总结
此工具类方便易用,没有任何依赖库,源代码也只有一个类HttpRequest,简洁明了,而且支持Builder模式链式调用。有兴趣的同学可以尝试使用,用过都说好,更多用法请自行查看官网例子。
分享到:
相关推荐
ant 涉及第三方包问题 打包第三方包 或者添加第三方包 ant 涉及第三方包问题 打包第三方包 或者添加第三方包 ant 涉及第三方包问题 打包第三方包 或者添加第三方包 ant 涉及第三方包问题 打包第三方包 或者添加第三...
java数据库第三方包和配置java数据库第三方包和配置java数据库第三方包和配置java数据库第三方包和配置java数据库第三方包和配置java数据库第三方包和配置java数据库第三方包和配置
该资源应用于java里的excel第三方包
行业文档-设计装置-方包卫生纸装箱机.zip
生成swing 客户端exe文件! 加载第三方包文件
Java生成UUID使用的第三方包,生成UUID的第三方包,
universal-image-loader,图片加载第三方包
java拓扑图第三方包(twaver.jar)试用版
MySQL数据库连接需要的第三方包以及c3p0数据库连接池的辅助包,没有这个包系统启动的时候会报classnotfoundexception,这是c3p0-0.9.2版本后分离出来的包
python连接gbase数据库的第三方包,这个是官方提供的资源,有不同版本支持python2和python3,网上很难找到!
基于swing的拓扑图第三方包,可以快速实现网络拓扑结构的动态图形。
Java操作mongodb第三方包
导入jar出现包冲突,可以删除其中一个来解决。都想保留的话可以通过工具修改包名来解决。以gson为例修改包名,可供参考,欢迎指正。
我在打包android的时候遇到 Cocos2dxDownloader.java文件报错是因为缺少了这个第三方包
Mac os react native rncache https://github.com/facebook/react-native/blob/0.47-stable/scripts/ios-install-third-party.sh
包括所有《机器学习实战》所有的第三方包,节省大家寻找的时间了
利用iText操作PDF文件非常的方便,包括PDF文件的读取,写入,其中中包含了支持中文字体iTextAsian.jar
Java第三方包JSR80说明文档,稀缺资源,只有英文版
jar包,亲测可用
使用spire可相当方便简单的生成Doc,表格、字体样式、字体颜色、字体格式大小等等,几行代码搞定,相关使用可以看我的文章