okhttp工具类

  • Post category:other

OkHttp工具类的完整攻略

OkHttp是一个流行的Java HTTP客户端,用于发送和接收HTTP请求和响应。它提供了简单用的API,支持同步和异步请求,以及HTTP/2和WebSocket。在使用OkHttp时,我们可以编写一个工具类,以更好地管理和重用OkHttp客户端。本文将提供一个完整的攻略,帮助您编写OkHttp工具类。

1. 添加OkHttp依赖

首先,我们需要在项目中添加OkHttp依赖。可以通过以下步骤添加OkHttp依赖:

  1. 在项目的build.gradle文件中,添加以下代码:
dependencies {
    implementation 'com.squareup.okhttp3:okhttp:4.9.1'
  1. 点击“Sync Now”按钮,同步项目。

2. 编写OkHttp工具类

在添加OkHttp依赖后,我们可以编写OkHttp工具类。以下OkHttp工具类的代码:

import okhttp3.*;

import java.io.IOException;

public class OkHttpUtils {

    private static final OkHttpClient client = new OkHttpClient();

    public static String get(String url) throws IOException {
        Request request = new Request.Builder()
                .url(url)
                .build();

        try (Response response = client.newCall(request).execute()) {
            return response.body().string();
        }
    }

    public static void post(String url, String json, Callback callback) {
        RequestBody body = RequestBody.create(json, MediaType.parse("application/json; charset=utf-8"));

        Request request = new Request.Builder()
                .url(url)
                .post(body)
                .build();

        client.newCall(request).enqueue(callback);
    }
}

在这个工具类中,我们定义了两个方法:get()和post()。get()方法用于发送GET请求,post()方法用于发送POST请求。以下是这两个方法的详细说明:

get()方法

get()方法用于发送GET请求,并返回响应的。以下是get()方法的参数和返回值:

public static String get(String url) throws IOException
  • url:请求的URL。
  • 返回值:响应的字符串。

以下是get()方法的实现过程:

  1. 创建一个Request对象,设置请求的URL。
  2. 使用OkHttpClient的newCall()方法创建一个Call对象。
  3. 调用Call对象的execute()方法发送请求,并获取响应。
  4. 调用响应的body()方法获取响应体,并调用string()方法将响应体转换字符串。

post()方法

post()方法用于发送POST请求,并异步返回响应。以下是post()方法的参数和返回值:

public static void post(String url, String json, Callback callback)
  • url:请求的URL。
  • json:请求的JSON字符串。
  • callback:异步回调函数。

是post()方法的实现过程:

  1. 创建一个RequestBody对象,设置请求的JSON字符串和Content-Type。
  2. 创建一个Request对象,设置请求的URL和请求体。
  3. 使用OkHttpClient的newCall()方法一个Call对象。
  4. 调用Call对象的enqueue()方法发送请求,并异步返回响应。

3. 示例说明

以下是两个示例,演示如何使用OkHttp工具类发送GET和POST请求。

示例1:发送GET请求

假设我们需要发送一个GET请求,某个URL的响应。以下是Java代码:

import java.io.IOException;

public class Main {

    public static void main(String[] args) throws IOException {
        String url = "https://jsonplaceholder.typicode.com/todos/1";
        String response = OkHttpUtils.get(url);
        System.out.println(response);
    }
}

在这个示例中,我们使用OkHttpUtils工具类发送一个GET请求,获取URL为”https://jsonplaceholder.typicode.com/todos/1″的响应,并将响应打印到控制台。

示例2:发送POST请求

假设我们需要发送一个POST请求,将JSON数据发送到某个URL。以下是Java代码:

import okhttp3.Call;
import okhttp3.Callback;
import okhttp3.Response;

import java.io.IOException;

public class Main {

    public static void main(String[] args) throws IOException {
        String url = "https://jsonplaceholder.typicode.com/posts";
        String json = "{\"title\":\"foo\",\"body\":\"bar\",\"userId\":1}";
        OkHttpUtils.post(url, json, new Callback() {
            @Override
            public void onFailure(Call call, IOException e) {
                e.printStackTrace();
            }

            @Override
            public void onResponse(Call call, Response response) throws IOException {
                System.out.println(response.body().string());
            }
        });
    }
}

在这个示例中,我们使用OkHttpUtils工具类发送一个POST请求,将JSON数据发送到URL为”https://jsonplaceholder.typicode.com/posts”的服务器,并异步返回响应。在异步回调函数中,我们将响应打印到控制台。

4. 总结

OkHttp是一个流行的Java HTTP客户端,用于发送和接收请求和响应。在使用OkHttp时,我们可以编写一个工具类,以便更好地管理和重用OkHttp客户端。通过定义get()和post()方法,我们可以方便地发送GET和POST请求。在示例中,我们演示了如何使用OkHttp工具类发送GET和POST请求。