`

推荐一个好用的java http-request 第三方包

 
阅读更多
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 涉及第三方包问题 打包第三方包 或者添加第三方包 ant 涉及第三方包问题 打包第三方包 或者添加第三...

    excel第三方包

    本文将详细讨论“excel第三方包”这一主题,主要聚焦于Apache POI项目及其相关组件,以及另一个流行的库JXL。 Apache POI是Apache软件基金会的一个开源项目,专门用于处理Microsoft Office格式的文件,尤其是Excel...

    java数据库第三方包和配置java数据库第三方包和配置

    本篇将详细探讨Java数据库第三方包的使用和配置,以及如何在项目中整合这些包。 一、常用的Java数据库第三方包 1. JDBC(Java Database Connectivity):这是Java标准API,用于与各种数据库进行通信。虽然JDBC提供...

    Java生成UUID使用的第三方包

    Java生成UUID使用的第三方包,生成UUID的第三方包,

    解决第三方包导入冲突

    总之,解决第三方包导入冲突是一个技术性和实践性并重的过程。理解冲突的原理,熟练运用各种解决策略,将有助于保持项目的稳定性和可维护性。在面对类似问题时,不要害怕尝试和学习新的工具和技术,这将是提升开发...

    java+swing打包jar转成exe 轻松加载第三方包

    这个过程涉及到将Java的JAR文件转换为Windows平台上的EXE文件,并且还需要处理第三方库的集成。以下是使用exe4j进行此操作的详细步骤和注意事项: 1. **准备阶段**: - 确保你的JAR文件、ICO图标、第三方库(存放...

    Cocos2dxDownloader.java文件报错需要引入的第三方包

    总之,`Cocos2dxDownloader.java`报错提示需要`android-async-http`第三方包,说明项目中可能使用了这个库来进行网络通信。解决此问题需要在项目中正确地引入并使用该库,确保所有相关的类和方法能够正常工作。同时...

    java拓扑图第三方包

    java拓扑图第三方包(twaver.jar)试用版

    python Gbase第三方包

    Python GBase第三方包是用于...总之,Python GBase第三方包为Python开发者提供了一个高效且可靠的途径来访问和操作GBase数据库。通过学习和熟练掌握这个库的使用,可以大大提高开发效率,降低与数据库交互的复杂性。

    行业文档-设计装置-方包卫生纸装箱机.zip

    这个文档集合提供了一个深入理解这种机械设计和运作原理的机会。 一、装箱机概述 方包卫生纸装箱机是一种集成了机械、电气、气动和自动化技术的复杂设备,它能够快速地将预先包装好的卫生纸包放入预定尺寸的纸箱中...

    java拓扑图第三方包twaver.jar

    基于swing的拓扑图第三方包,可以快速实现网络拓扑结构的动态图形。

    mongo-java-driver-3.4.3.jar

    Java操作mongodb第三方包

    android第三方包

    3. **图片占位符与错误图片**:在图片加载过程中,可以设置占位符图片,给用户一个预览效果。如果加载失败,还可以提供错误图片作为替代,确保界面始终有反馈。 4. **图片变形与缩放**:支持图片的裁剪、缩放,以...

    创建jar并引入第三方包

    引入第三方包意味着我们需要将外部的Java库整合到我们的项目中,以便在运行时能够访问这些库提供的功能。 以下是创建包含第三方库的JAR文件的步骤: 1. **配置项目结构**:确保你的项目中已经正确地包含了第三方库...

    aes第三方包

    这里提到的"aes第三方包"是针对Egret游戏引擎的一个特定库,它包含了AES加密所需的三个文件:`aes.d.ts`、`aes.js`和`aes.min.js`。 1. `aes.d.ts`:这是一个TypeScript类型定义文件,为AES库提供了静态类型支持。...

    JAVA操作PDF文件的第三方包-iText

    为了在Java环境中对PDF进行操作,如读取、写入或修改,开发者通常会借助第三方库,其中iText是一个非常流行的选择。本文将详细介绍如何使用iText库来处理PDF文件,并特别关注其对中文字符的支持。 iText是一个开放...

    Eclipse RCP中使用第三方包

    首先,我们需要新建一个Eclipse RCP应用程序,然后创建一个lib目录作为存放第三方库的目录。在这个示例中,我们使用了一个简单的Java文件,并将其打包成jar文件。然后,我们可以将这个jar文件添加到RCP应用程序的...

    .rncache React-Native 0.47第三方包

    Mac os react native rncache https://github.com/facebook/react-native/blob/0.47-stable/scripts/ios-install-third-party.sh

    不用第三方jar的json与object(map、list)互换java类

    本文将深入探讨如何在不依赖第三方库的情况下,实现JSON与Java对象(如Map、List)之间的互换。我们将分析标题提及的两个Java类——`jsonobject.java`和`JsonUtil.java`。 首先,`JsonUtil.java`很可能是这个功能的...

    myeclpse7.5fat jar 将第三方包导入项目

    在Java开发中,"fat jar"(也称为"uber jar")是一种打包方式,它将所有依赖库(包括第三方库)合并到一个单独的JAR文件中,使得开发者可以轻松地分发和运行整个应用程序,而无需关心项目的依赖关系。在本教程中,...

Global site tag (gtag.js) - Google Analytics