• Http客户端OkHttp的基本使用


    简介

    OkHttp是一个强大的开源HTTP客户端,它被广泛用于Android和Java应用程序中。OkHttp具有简单易用的API,提供了许多高级功能,如连接池、请求压缩和缓存等。

    依赖

    要使用OkHttp,需要在项目的构建文件中添加以下依赖:

    implementation 'com.squareup.okhttp3:okhttp:x.x.x'
    

    请将 x.x.x 替换为您希望使用的OkHttp版本号。

    发送HTTP请求

    GET请求

    以下是发送GET请求的基本步骤:

    1、创建OkHttpClient对象:首先,我们需要创建一个OkHttpClient对象,它将负责发送HTTP请求。

    OkHttpClient client = new OkHttpClient();
    

     2、创建Request对象:接下来,我们需要创建一个Request对象,它代表我们要发送的HTTP请求。

    1. Request request = new Request.Builder()
    2. .url("https://api.example.com/data")
    3. .build();

     3、发送请求并处理响应:最后,我们可以使用OkHttpClient对象发送请求,并处理服务器返回的响应。

    1. try (Response response = client.newCall(request).execute()) {
    2. if (response.isSuccessful()) {
    3. String responseBody = response.body().string();
    4. // 处理响应数据
    5. } else {
    6. // 处理请求失败情况
    7. }
    8. } catch (IOException e) {
    9. e.printStackTrace();
    10. // 处理异常情况
    11. }

    POST请求

    如果要发送POST请求,可以使用以下步骤:

    1、创建RequestBody对象:首先,我们需要创建一个RequestBody对象,它包含了我们要发送给服务器的数据。

    1. RequestBody requestBody = new FormBody.Builder()
    2. .add("username", "john")
    3. .add("password", "123456")
    4. .build();

    2、建Request对象:接下来,我们需要创建一个Request对象,将RequestBody与URL绑定在一起。

    1. Request request = new Request.Builder()
    2. .url("https://api.example.com/login")
    3. .post(requestBody)
    4. .build();

     3、发送请求并处理响应:最后,像之前一样,使用OkHttpClient对象发送请求,并处理响应。

    1. try (Response response = client.newCall(request).execute()) {
    2. if (response.isSuccessful()) {
    3. String responseBody = response.body().string();
    4. // 处理响应数据
    5. } else {
    6. // 处理请求失败情况
    7. }
    8. } catch (IOException e) {
    9. e.printStackTrace();
    10. // 处理异常情况
    11. }

    高级功能

    异步请求

    如果你不想阻塞主线程,可以使用OkHttp的异步请求功能。以下是发送异步GET请求的例子:

    1. Request request = new Request.Builder()
    2. .url("https://api.example.com/data")
    3. .build();
    4. client.newCall(request).enqueue(new Callback() {
    5. @Override
    6. public void onFailure(Call call, IOException e) {
    7. e.printStackTrace();
    8. // 处理请求失败情况
    9. }
    10. @Override
    11. public void onResponse(Call call, Response response) throws IOException {
    12. if (response.isSuccessful()) {
    13. String responseBody = response.body().string();
    14. // 处理响应数据
    15. } else {
    16. // 处理请求失败情况
    17. }
    18. }
    19. });

    请求头和参数

    OkHttp还提供了设置请求头和参数的方法。以下是一个例子:

    1. Request request = new Request.Builder()
    2. .url("https://api.example.com/data")
    3. .header("Authorization", "Bearer token")
    4. .addHeader("Accept-Encoding", "gzip, deflate")
    5. .get()
    6. .build();

    在这个例子中,我们设置了两个请求头。

    结论

    OkHttp是一个功能强大且易于使用的HTTP客户端库。它可以帮助您发送各种类型的HTTP请求,并处理服务器的响应。无论您是在Android应用程序还是Java应用程序中使用,OkHttp都是一个值得推荐的选择。

  • 相关阅读:
    力扣打卡----打家劫舍
    UIKit Inside: frame bounds position anchorPoint center
    常用脚本学习手册——Bat脚本
    java项目接口重复提交解决方案
    Google Earth Engine(GEE)—— 下载一个最简单的sentinel-2影像的单日ndvi下载
    SRAM和DRAM
    Linux之进程概念(一)
    css文字单行/多行超出显示省略号...
    【思悟】一定要给自己留出空间
    springMVC中统一异常处理@ControllerAdvice
  • 原文地址:https://blog.csdn.net/weixin_52721608/article/details/132765901