Java:OkHttp基本使用

简介: Java:OkHttp基本使用

文档:https://square.github.io/okhttp/

依赖

<dependency>
    <groupId>com.squareup.okhttp3</groupId>
    <artifactId>okhttp</artifactId>
    <version>4.8.1</version>
</dependency>
<dependency>
    <groupId>com.google.code.gson</groupId>
    <artifactId>gson</artifactId>
    <version>2.8.6</version>
</dependency>
<dependency>
    <groupId>junit</groupId>
    <artifactId>junit</artifactId>
    <version>4.13</version>
    <scope>test</scope>
</dependency>

代码示例

package com.demo;
import com.google.gson.Gson;
import okhttp3.*;
import org.junit.Test;
import java.io.IOException;
import java.util.HashMap;
import java.util.Map;
public class Demo {
    public static final MediaType JSON = MediaType.parse("application/json; charset=utf-8");
    /**
     * 发送GET请求
     */
    @Test
    public void getRequest() throws IOException {
        OkHttpClient client = new OkHttpClient();
        Request request = new Request.Builder()
                .url("http://httpbin.org/get")
                .build();
        Response response = client.newCall(request).execute();
        if (response.isSuccessful()) {
            System.out.println(response.body().string());
        }
    }
    /**
     * POST请求
     */
    @Test
    public void postRequest() throws IOException {
        OkHttpClient client = new OkHttpClient();
        // 提交FormData
        FormBody.Builder form = new FormBody.Builder();
        form.add("name", "Tom");
        form.add("age", "23");
        Request request = new Request.Builder()
                .url("http://httpbin.org/post")
                .post(form.build())
                .build();
        Response response = client.newCall(request).execute();
        System.out.println(response.body().string());
    }
    /**
     * 提交Json
     */
    @Test
    public void postJsonRequest() throws IOException {
        OkHttpClient client = new OkHttpClient();
        Map<String, Object> map = new HashMap<>();
        map.put("name", "Tom");
        map.put("age", 23);
        Gson gson = new Gson();
        String data = gson.toJson(map);
        RequestBody requestBody = RequestBody.create(data, JSON);
        Request request = new Request.Builder()
                .url("http://httpbin.org/post")
                .post(requestBody)
                .build();
        Response response = client.newCall(request).execute();
        System.out.println(response.body().string());
    }
}
相关文章
|
存储 Java 索引
【零基础学Java】—ArrayList集合概述和基本使用(十四)
【零基础学Java】—ArrayList集合概述和基本使用(十四)
|
Java
Java 中Calendar日历类的基本使用
Java 中Calendar日历类的基本使用
89 1
|
7月前
|
算法 Java 编译器
重学Java之泛型的基本使用
重学Java之泛型的基本使用
|
7月前
|
Java 机器人 开发者
21、Java 中接口的基本使用
21、Java 中接口的基本使用
36 0
|
存储 Java 索引
[正式学习java②]——数组的基本使用,java内存图与内存分配
[正式学习java②]——数组的基本使用,java内存图与内存分配
|
Kubernetes Java 数据库连接
java之路——带你了解springboot框架与其基本使用(下)
java之路——带你了解springboot框架与其基本使用(下)
177 0
|
IDE Java 开发工具
Java 集成开发环境 eclipse 的安装及基本使用
Java 集成开发环境 eclipse 的安装及基本使用
342 0
Java 集成开发环境 eclipse 的安装及基本使用
|
监控 Java 云计算
java之路——带你了解springboot框架与其基本使用(上)
java之路——带你了解springboot框架与其基本使用(上)
174 0
|
存储 Java
Java:创建数组、数组遍历、数组排序及工具类Arrays的基本使用
Java:创建数组、数组遍历、数组排序及工具类Arrays的基本使用
231 0
|
算法 安全 Java
重学Java之泛型的基本使用
本身是打算接着写JMM、JCStress,然后这两个是在公司闲暇的时候随手写的,没有推到Github上,但写点什么可以让我获得宁静的感觉,所性就从待办中拎了一篇文章,也就是这篇泛型。这篇文章来自于我朋友提出的一个问题,比如我在一个类里面声明了两个方法,两个方法只有返回类型是int,一个是Integer,像下面这样,能否通过编译: