使用okgo传递body(application/json)

网络请求常见的有这么几种:
1.get无参/有参
2.post,然后表单模式,不停的put、put、put
3.post 上传文件

这些基本都是常见的,但是有个接口,如下图所示:
使用okgo传递body(application/json)_第1张图片
这是服务端给我的swagger,用上面这些假数据测试了一下之后,发现实际上userId和storeId是拼接在url里的,唯一一个麻烦的是body这个参数
使用okgo传递body(application/json)_第2张图片
以前服务端也给我弄过这种接口,用的是okhttp3生成requestBody来解决的,现在这个项目统一用的是okgo,如果单独用其依赖的okhttp3来写一个没有封装的方法也是可以的,但是基类里也好了okgo的几种调用方法,如果单独写的话,有点麻烦,也想弄成okgo这样的。

没怎么找文档,网上随便搜了一下,发现没有什么说这个的,但是我随便试了一下:
使用okgo传递body(application/json)_第3张图片
跟body相关的有这么两个方法,点进去看了下源码,脑阔疼。。。。抱着死马当活马医的心态,先试试呗。。。

upRequestBody这个方法里,要我们传递一个RequestBody参数,而以前调用这种类型接口的代码里,同样也是生成一个RequestBody:

public static final MediaType JSON = MediaType.parse("application/json; charset=utf-8");
RequestBody body = RequestBody.create(JSON, data);

那么既然都需要一个RequestBody,那就生成之后再传进去试试吧:
按照okgo的样式:
使用okgo传递body(application/json)_第4张图片
然后我调用了一下接口,可以了。。。emmmmm。。。。。

记录下来,方便以后再碰到。。。。

你可能感兴趣的:(自己总结)