UniRest是什么?

Unirest 是一套跨语言轻量级HTTP开发库,由Kong团队维护,此团队同时维护着另一个著名开源网关项目API Gateway Kong.

MAVEN安装

<!-- 一般情形下maven引用的方式 -->
<dependency><groupId>com.konghq</groupId><artifactId>unirest-java</artifactId><version>3.5.00</version>
</dependency><!-- 需要作为独立jar文件引用时(包含隐式依赖) -->
<dependency><groupId>com.konghq</groupId><artifactId>unirest-java</artifactId><version>3.5.00</version><classifier>standalone</classifier>
</dependency>

请求

使用JAVA语言,创建一个Unirest请求相当方便,一个常见的POST请求如下:

HttpResponse<JsonNode> response =Unirest.post("http://httpbin.org/post").header("accept", "application/json").queryString("apiKey", "123").field("parameter", "value").field("foo", "bar").asJson();

路由参数

如果需要在URL中加入动态路由参数,可以先在URL中通过一个占位符标记参数位置,之后通过routeParam方法,动态指定参数值,如下所示:

Unirest.get("http://httpbin.org/{fruit}").routeParam("fruit", "apple").asString();

占位符的格式为{自定义名称},在示例中,{占位符}会被替换为 apple,并且所有占位符会自动使用
URL-Encoded转义。

查询参数

请求路径附带的参数可以通过如下方式逐个添加:

Unirest.get("http://httpbin.org").queryString("fruit", "apple").queryString("droid", "R2D2").asString();// 请求路径 "http://httpbin.org?fruit=apple&droid=R2D2"

queryString 方法也支持通过数组,或Map传递参数

Unirest.get("http://httpbin.org").queryString("fruit", Arrays.asList("apple", "orange")).queryString(ImmutableMap.of("droid", "R2D2", "beatle", "Ringo")).asString();// 请求路径 "http://httpbin.org?fruit=apple&fruit=orange&droid=R2D2&beatle=Ringo"

请求头

请求头通过header方法,添加:

Unirest.get("http://httpbin.org").header("Accept", "application/json").header("x-custom-header", "hello").asString();

Basic Authentication 认证

Unirest提供了一个方便的方法实现 Basic Authentication 认证,Unirest 会自动处理Base64编码部分,此认证建议使用HTTPS。

Unirest.get("http://httpbin.org").basicAuth("user", "password1!").asString();// 请求头 "Authorization: Basic dXNlcjpwYXNzd29yZDEh"

请求体

请求体通过body方法指定,除非特别指定,否则请求头中 Content-Type 统一设置为:text/plain; charset=UTF-8

Unirest.post("http://httpbin.org").body("This is the entire body").asEmpty();

body方法传入对象,支持用Jackson序列化对象方式生成请求体。

Unirest.post("http://httpbin.org").header("Content-Type", "application/json").body(new SomeUserObject("Bob")).asEmpty();// This will use Jackson to serialize the object into JSON.

JSON Patch支持

Unirest 原生支持JSON Patch 技术(参见 RFC-6902 http://jsonpatch.com/) 。json-patch请求默认的Content-Type是application/json-patch+json。

Unirest.jsonPatch("http://httpbin.org").add("/fruits/-", "Apple").remove("/bugs").replace("/lastname", "Flintstone").test("/firstname", "Fred").move("/old/location", "/new/location").copy("/original/location", "/new/location").asJson();

以上代码会生成以下请求内容并发送

[{"op":"add","path":"/fruits/-","value":"Apple"},{"op":"remove","path":"/bugs"},{"op":"replace","path":"/lastname","value":"Flintstone"},{"op":"test","path":"/firstname","value":"Fred"},{"op":"move","path":"/new/location","from":"/old/location"},{"op":"copy","path":"/new/location","from":"/original/location"}]

基本表单

通过body传输的表单name和value参数可以通过field指定,此类请求的Content-Type默认为application/x-www-form-urlencoded

Unirest.post("http://httpbin.org").field("fruit", "apple").field("droid", "R2D2").asEmpty();

文件上传

全文内容:
https://www.jianshu.com/p/a7e3527628b0

UniRest 使用手册相关推荐

  1. 分布式训练使用手册-paddle 数据并行

    分布式训练使用手册¶ 分布式训练基本思想¶ 分布式深度学习训练通常分为两种并行化方法:数据并行,模型并行,参考下图: 在模型并行方式下,模型的层和参数将被分布在多个节点上,模型在一个mini-batc ...

  2. 正则语法完全正则表达式手册_语法格式重点

    20211202 https://blog.csdn.net/lc11535/article/details/103266263 该表达式打开re.U(re.UNICODE)标志. python –& ...

  3. CUDA C++编程手册(总论)

    CUDA C++编程手册(总论) CUDA C++ Programming Guide The programming guide to the CUDA model and interface. C ...

  4. html iso标准文档,HTML ISO-8859-1 参考手册

    # HTML ISO-8859-1 参考手册 HTML 4.01 支持 ISO 8859-1 (Latin-1) 字符集. ISO-8859-1 的较低部分(从 1 到 127 之间的代码)是最初的 ...

  5. 最好的程序界面就是用户无需去阅读操作手册就知道该如何使用的界面

    最好的程序界面就是用户无需去阅读操作手册就知道该如何使用的界面. 原则 1.一致性  如果你可以在一个列表的项目上双击后能 够弹出对话框,那么应该在任何列表中双击都能弹出对话框.要有统一的字体写号.统 ...

  6. ffmpeg linux安装_ffmpeg命令中文手册

    功能 视频转换和编辑工具 示例 1.从mp4视频文件中提取音频并保存为mp3音频格式 [root@node_116 video]# ffmpeg -i video.mp4 -vn sound.mp3f ...

  7. java修炼手册3.8_Java修炼手册

    <Java修炼手册免费版>是一款专为想要自学JAVA的用户打造的全方位掌上学习软件,拥有各阶段的科学课程模块,从视频,资料,图片,演示等多种方面全面引导用户科学而快速的融入JAVA的世界中 ...

  8. android 设置setmultichoiceitems设置初始化勾选_阿里巴巴Java开发手册建议创建HashMap时设置初始化容量,但是多少合适呢?...

    集合是Java开发日常开发中经常会使用到的,而作为一种典型的K-V结构的数据结构,HashMap对于Java开发者一定不陌生. 关于HashMap,很多人都对他有一些基本的了解,比如他和hashtab ...

  9. 【radar】毫米波雷达相关资料(文献综述列表、顶会研讨会资料列表、顶会workshops资料列表、工具书、使用手册)(2)

    [radar]毫米波雷达相关资料(毫米波雷达文献综述列表.毫米波雷达顶会研讨会资料列表.毫米波雷达顶会workshops资料列表.毫米波雷达工具书.毫米波雷达使用手册)(2) Review Paper ...

最新文章

  1. LeetCode01_二分法专题
  2. C++简单排序,堆排序
  3. SAP UI5 CRM Reuse Fiori应用 note.js代码审查结果
  4. calendar类计算时间距离_日期时间--JAVA成长之路
  5. 2021牛客暑期多校训练营1 J-Journey among Railway Stations(线段树+思维转化)
  6. 如何设置PP视频允许PPAP驻留
  7. raspberry ubuntu 修改源为清华_Ubuntu 下 Janus Server 搭建笔记
  8. 华为云薛浩:媒体业务进入全面云化时代,云原生成为必然选择
  9. 哨兵2号波段_Redis 哨兵使用以及在 Laravel 中的配置
  10. 2年20亿搞自动驾驶+环卫,酷哇和中联环境成立合资子公司
  11. Spring Batch的事务-Part 1:基础
  12. 阿里笔试题解(2020.4.17场)
  13. dell n5110 触摸板驱动
  14. matlab画五线谱,‎App Store 上的“五线谱”
  15. VM16-ubuntu16桥接网络频繁掉线
  16. php 色彩空间转换,PHP Imagemagick将灰度转换为RGB
  17. 如何使用“迁移助理”将文件从旧 Mac 移到新Mac?
  18. 学校机房中无法使用Todesk和向日葵控制寝室电脑,可以使用Parsec进行控制的步骤。
  19. xtend 生成代码的编码问题
  20. fractions库的使用

热门文章

  1. pwn学习——ret2libc1
  2. xampp安装包(百度云)
  3. android 浏览器 useragent,各种浏览器UserAgent一览表(桌面+移动)
  4. android开发蓝牙是否可见开关_android开发之蓝牙初步 扫描已配对蓝牙、更改蓝牙可见性、搜索外部蓝牙设备 | 学步园...
  5. Android学习笔记——关于Intent
  6. 程序员常用的网站(转)
  7. html中的table跨行跨列用法
  8. 软件中常用的反义词组
  9. Affymetrix公司芯片类型和对应平台
  10. 2021年中国留学生回国人数、求职的海归人数及海归就业情况分析:留学生回国人数增长,有留学经验的平均招聘薪酬连续三年走高[图]