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 涉及第三方包问题 打包第三方包 或者添加第三...
本文将详细讨论“excel第三方包”这一主题,主要聚焦于Apache POI项目及其相关组件,以及另一个流行的库JXL。 Apache POI是Apache软件基金会的一个开源项目,专门用于处理Microsoft Office格式的文件,尤其是Excel...
本篇将详细探讨Java数据库第三方包的使用和配置,以及如何在项目中整合这些包。 一、常用的Java数据库第三方包 1. JDBC(Java Database Connectivity):这是Java标准API,用于与各种数据库进行通信。虽然JDBC提供...
Java生成UUID使用的第三方包,生成UUID的第三方包,
总之,解决第三方包导入冲突是一个技术性和实践性并重的过程。理解冲突的原理,熟练运用各种解决策略,将有助于保持项目的稳定性和可维护性。在面对类似问题时,不要害怕尝试和学习新的工具和技术,这将是提升开发...
这个过程涉及到将Java的JAR文件转换为Windows平台上的EXE文件,并且还需要处理第三方库的集成。以下是使用exe4j进行此操作的详细步骤和注意事项: 1. **准备阶段**: - 确保你的JAR文件、ICO图标、第三方库(存放...
总之,`Cocos2dxDownloader.java`报错提示需要`android-async-http`第三方包,说明项目中可能使用了这个库来进行网络通信。解决此问题需要在项目中正确地引入并使用该库,确保所有相关的类和方法能够正常工作。同时...
java拓扑图第三方包(twaver.jar)试用版
Python GBase第三方包是用于...总之,Python GBase第三方包为Python开发者提供了一个高效且可靠的途径来访问和操作GBase数据库。通过学习和熟练掌握这个库的使用,可以大大提高开发效率,降低与数据库交互的复杂性。
这个文档集合提供了一个深入理解这种机械设计和运作原理的机会。 一、装箱机概述 方包卫生纸装箱机是一种集成了机械、电气、气动和自动化技术的复杂设备,它能够快速地将预先包装好的卫生纸包放入预定尺寸的纸箱中...
基于swing的拓扑图第三方包,可以快速实现网络拓扑结构的动态图形。
Java操作mongodb第三方包
3. **图片占位符与错误图片**:在图片加载过程中,可以设置占位符图片,给用户一个预览效果。如果加载失败,还可以提供错误图片作为替代,确保界面始终有反馈。 4. **图片变形与缩放**:支持图片的裁剪、缩放,以...
引入第三方包意味着我们需要将外部的Java库整合到我们的项目中,以便在运行时能够访问这些库提供的功能。 以下是创建包含第三方库的JAR文件的步骤: 1. **配置项目结构**:确保你的项目中已经正确地包含了第三方库...
这里提到的"aes第三方包"是针对Egret游戏引擎的一个特定库,它包含了AES加密所需的三个文件:`aes.d.ts`、`aes.js`和`aes.min.js`。 1. `aes.d.ts`:这是一个TypeScript类型定义文件,为AES库提供了静态类型支持。...
为了在Java环境中对PDF进行操作,如读取、写入或修改,开发者通常会借助第三方库,其中iText是一个非常流行的选择。本文将详细介绍如何使用iText库来处理PDF文件,并特别关注其对中文字符的支持。 iText是一个开放...
首先,我们需要新建一个Eclipse RCP应用程序,然后创建一个lib目录作为存放第三方库的目录。在这个示例中,我们使用了一个简单的Java文件,并将其打包成jar文件。然后,我们可以将这个jar文件添加到RCP应用程序的...
Mac os react native rncache https://github.com/facebook/react-native/blob/0.47-stable/scripts/ios-install-third-party.sh
本文将深入探讨如何在不依赖第三方库的情况下,实现JSON与Java对象(如Map、List)之间的互换。我们将分析标题提及的两个Java类——`jsonobject.java`和`JsonUtil.java`。 首先,`JsonUtil.java`很可能是这个功能的...
在Java开发中,"fat jar"(也称为"uber jar")是一种打包方式,它将所有依赖库(包括第三方库)合并到一个单独的JAR文件中,使得开发者可以轻松地分发和运行整个应用程序,而无需关心项目的依赖关系。在本教程中,...