请求第三方接口的各种姿势

最近写了一些请求第三方接口的需求,基于http协议的接口,实际上写起来并不麻烦,因为就三个核心要素,地址,请求方式,请求内容。地址他们给的是什么地址就是什么地址,没有变数,请求方式是写死的,复杂且容易出错的地方就是请求内容,不同的请求方式又有不同的传参方式。请求内容是JSON数据还是表单数据,等等,有时因为提供接口的开发者描述不准确,这个时候我们怎么办呢,很简单的一个一个试,基本上只需要试两到三下就能解决问题。你问人是表单数据还是JSON数据可能他们自己也说不清楚,因为这个表单数据的数据格式我也不知道官方的叫法是什么,表单数据,是我自己的理解,意义可能就是为了区分不是JSON数据,有这个问的时间,你已经试出来了。因为就这三种数据,还有一种数据是上传的文件数据,除去文件数据就两种数据。get请求只能发送表单数据,post能发送表单数据,也能发送json数据,一般post用的多。所以记住这两种传参方式就可以了。

实际操作中使用了hutool这个工具类,当然你也可以用大家更为熟知一点的okhttp这个http工具,萝卜青菜都能写,只不过我感觉hutool提供的工具代码比较简洁也便于理解。

依赖

implementation('cn.hutool:hutool-all:5.7.19')

实际操作代码


// 发起get请求,并获取返回内容
String body = HttpRequest.get("url") // 请求方式,以及url
        .form("name", "小红")// 参数,重复调用即可
        .form("age", "24")
        .execute().body();// 获取body内容

// 发起post请求发送表单数据,并获取返回数据
String body1 = HttpRequest.post("utl") // post请求
        .form("name", "小红")
        .form("age", "24")
        .execute().body();

// 发送post请求并发送JSON数据,并获取返回信息
String body2 = HttpRequest.post("url")
        .body(JSONUtil
                .createObj()
                .set("name","小红")
                .set("age","24")
                .toString())
        .execute().body();

如果确认传递的参数没有问题,一个一个试基本就能解决问题。如果还有特殊的需求,阅读源码,建议直接看源码,注释都是中文的,使用起来基本没有任何障碍。官网文档地址

封面

海琴烟 同人


请求第三方接口的各种姿势
https://wangijun.com/2022/01/16/java-08/
作者
无良芳
发布于
2022年1月16日
许可协议