OkHttp的用法小结

折月煮酒 提交于 2020-03-06 12:42:27

创建OkHttpClient对象

OkHttpClient client = new OkHttpClient();

这种方式创建,设置都是default
如果要设置超时时间,比如读取的超时时间,可以使用newBuild()方法设置

OkHttpClient client = new OkHttpClient()
.newBuilder()
.readTimeout(5, TimeUnit.SECONDS)//此处设置了读取超时时间,五秒钟
.build();//调用build()来返回一个OkHttpClient对象

创建Request对象

创建RequestRequestBody
对于GET方法,我们不需要RequestBody,参数直接加在URL上传值就行了。
后台比如spring boot可以使用@RequestParam(“参数名”)的方式拿到。

我们这样使用OkHttp框架的Request

Request request = new Request.Builder().url(url).get().build();

这里我们在url传入要请求的网址,方法选择GET

如果我们要使用POST方法,就需要RequestBody来传递参数了

JSONObject sender = new JSONObject();
 MediaType JSON = MediaType.parse("application/json; charset=utf-8");
 //MediaType需要指定,我们从字符串解析它
RquestBody requestBody = FormBody.create(JSON, sender);
//我们指定了RequestBody中的MediaType和要发送的数据
Request request = new Request.Builder().url(url).post(requestBody).build();
//我们创建了一个Request对象并设置为POST方法,把requestBody加入了它

使用OkHttpClient对象进行连接

接下来我们使用OkHttpClient对象进行连接

OkHttpClient client = new OkHttpClient()
.newBuilder()
.writeTimeout(5, TimeUnit.SECONDS)//此处设置了写入超时时间,五秒钟
.build();

Response response = client.newCall(request).execute();
//我们使用之前创造好的request来进行连接,并用Response对象接收返回结果

如果我们想要返回的信息:

String result = response.body().string();//获得String对象
InputStream is = response.body().byteStream();//获得输入流

此处要注意,获得字符串对象的方法不是toString( ),而是string( )

用到此框架的小项目GitHub:
https://github.com/nsplnpbjy/OkHttpAndJsoupForPornPic

标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!