之前一直用Hutool,早就忘记OkHttp这个牛逼的工具了,因为担心公司整体业务使用OkHttp,于是将原Hutool代码修改为OkHttp。
<dependency>
<groupId>com.squareup.okhttp3</groupId>
<artifactId>okhttp</artifactId>
<version>4.10.0</version>
</dependency>
/**
* 1、创建客户端
* 2、创建请求
* 3、客户端执行请求
* 4、处理结果
*/
@Test
public void openHttpTestDemo1() {
OkHttpClient client = new OkHttpClient();
Request request = new Request.Builder()
.url("Https://www.baidu.com")
.get() // 默认是get请求
.build();
try (Response response = client.newCall(request).execute()) {
System.out.println(response.body().string());
} catch (IOException e) {
throw new RuntimeException("OkHttp请求&处理:异常", e);
}
}
Get带参数
Post Json参数。请求Body格式:x-www-form-urlencoded (不支持文件上传)
OkHttpClient client = new OkHttpClient().newBuilder()
.build();
MediaType mediaType = MediaType.parse("application/x-www-form-urlencoded");
RequestBody body = RequestBody.create(mediaType, "param1=01¶m2=02");
Request request = new Request.Builder()
.url("https://www.baidu.com")
.method("POST", body)
.addHeader("Content-Type", "application/x-www-form-urlencoded")
.build();
Response response = client.newCall(request).execute();
Post 表单参数。请求Body格式:form-data (带有文件上传)
OkHttpClient client = new OkHttpClient().newBuilder()
.build();
MediaType mediaType = MediaType.parse("text/plain");
RequestBody body = new MultipartBody.Builder().setType(MultipartBody.FORM)
.addFormDataPart("param1","1")
.addFormDataPart("param2","IMG_0001.png",
RequestBody.create(MediaType.parse("application/octet-stream"),
new File("/Users/zanglikun/Desktop/IMG_0001.png")))
.build();
Request request = new Request.Builder()
.url("https://www.baidu.com")
.method("POST", body)
.build();
Response response = client.newCall(request).execute();
如果你不想写OkHttp的代码,记得PostMan可以生成Java代码:https://cloud.tencent.com/developer/article/2080977
特殊说明: 以上文章,均是我实际操作,写出来的笔记资料,不会盗用别人文章!烦请各位,请勿直接盗用!转载记得标注来源!