酷代码 AI
菜单
全部AI  /  热门  /  AI写代码神器
服务商

给我封装一个android使用的网络请求系列类

当然可以!以下是一个简单的Android网络请求封装类,使用`OkHttp`作为HTTP客户端库。请确保在你的`build.gradle`文件中添加OkHttp的依赖: ```groovy implementation 'com.squareup.okhttp3:okhttp:4.9.3' ``` 接下来,我们创建一个名为`NetworkClient`的类来处理网络请求。 ```java import okhttp3.Call; import okhttp3.Callback; import okhttp3.OkHttpClient; import okhttp3.Request; import okhttp3.Response; import java.io.IOException; public class NetworkClient { private static NetworkClient instance; private OkHttpClient client; // 单例模式 private NetworkClient() { client = new OkHttpClient(); } public static NetworkClient getInstance() { if (instance == null) { instance = new NetworkClient(); } return instance; } // GET请求 public void get(String url, final NetworkCallback callback) { Request request = new Request.Builder() .url(url) .build(); client.newCall(request).enqueue(new Callback() { @Override public void onFailure(Call call, IOException e) { callback.onError(e); } @Override public void onResponse(Call call, Response response) throws IOException { if (response.isSuccessful() && response.body() != null) { callback.onSuccess(response.body().string()); } else { callback.onError(new IOException("Unexpected code " + response)); } } }); } // POST请求 public void post(String url, String json, final NetworkCallback callback) { // Create request body, omitted for brevity // You can use MediaType and RequestBody to send JSON } // 网络请求回调接口 public interface NetworkCallback { void onSuccess(String response); void onError(Exception e); } } ``` 使用方法: 可以通过以下方式使用这个`NetworkClient`类: ```java String url = "https://api.example.com/data"; NetworkClient.getInstance().get(url, new NetworkClient.NetworkCallback() { @Override public void onSuccess(String response) { // 处理成功的响应 System.out.println("Response: " + response); } @Override public void onError(Exception e) { // 处理错误 e.printStackTrace(); } }); ``` 说明: 1. `NetworkClient`是一个单例类,确保全局只有一个网络请求实例。 2. `get`和`post`方法用于发送GET和POST请求。 3. `NetworkCallback`接口用于处理请求结果,包括成功和错误情况。 你也可以根据需求扩展更多功能,比如添加请求头、处理HTTPS等。 [2024-08-28 09:56:55 | AI写代码神器 | 1776点数解答]

相关提问