ARTICLE DETAIL

建站实战干货

来自一线的建站与推广经验沉淀,每一条都经过真实交付验证。

app逆向-⽹络请求库Retrofit2

2026/9/20 21:07:15 拓冰建站 浏览量
app逆向-⽹络请求库Retrofit2

文章目录

    • 一、前言
    • 二、POST应用
    • 三、GET应用

一、前言

Retrofit2 是基于 OkHttp 构建的 RESTful HTTP 客户端,专门用于简化 HTTP 请求的过程,尤其是用于访问 RESTful API。

Retrofit2 提供了一个声明式的方式来定义 REST API 接口,通过注解来描述请求方法、请求参数、请求头等,它自动处理了请求的创建、执行、响应的转换等步骤。

Retrofit2 默认使用 OkHttp 来执行网络请求,并且可以与 OkHttp 结合使用以发挥更强大的功能。

二、POST应用

请求地址:

POST: https://reqres.in/api/users

发送的数据

{
"name": "morpheus",
"job": "leader"
}

接收到的数据

{
"name": "morpheus",
"job": "leader",
"id": "171",
"createdAt": "2021-12-22T11:46:26.302Z"
}

接下来代码实现,先创建解析类UserParse,用于序列化字符串:

package com.example.myapplication;import com.google.gson.annotations.SerializedName;public class UserParse {@SerializedName("name")String name;@SerializedName("job")String job;@SerializedName("id")String id;@SerializedName("createdAt")String createdAt;
}

接下来创建api接口类ApiService

package com.example.myapplication;import retrofit2.Call;
import retrofit2.http.Field;
import retrofit2.http.FormUrlEncoded;
import retrofit2.http.GET;
import retrofit2.http.POST;
import retrofit2.http.Query;public interface ApiService {// post请求@POST("api/users")@FormUrlEncodedCall<UserParse> createUser(@Field("name") String name, @Field("job") String job);
}

请求实现:

// retrofit2 post 请求
private void retroFit2postDemo(){String baseUrl = "https://reqres.in/";Retrofit mRetrofit = new Retrofit.Builder().baseUrl(baseUrl)// 将字符串转换成java对象.addConverterFactory(GsonConverterFactory.create()).build();tvContent.setText("异步请求中.......");mRetrofit.create(ApiService.class).createUser("admin", "java").enqueue(new retrofit2.Callback<UserParse>() {@Overridepublic void onResponse(retrofit2.Call<UserParse> call, retrofit2.Response<UserParse> response) {// 处理请求成功的响应String name = response.body().name;String job = response.body().job;String id = response.body().id;String createdAt = response.body().createdAt;// 在这里处理响应数据tvContent.setText("异步请求成功" + ',' + name + ',' + job + ',' + id + ',' + createdAt);}@Overridepublic void onFailure(retrofit2.Call<UserParse> call, Throwable t) {// 处理请求失败tvContent.setText("异步请求失败");}});
}

效果图:
在这里插入图片描述

三、GET应用

请求地址:

GET: https://reqres.in/api/users?page=2

接收到的数据:
在这里插入图片描述
代码实现创建解析类UserPageParse

package com.example.myapplication;import com.google.gson.annotations.SerializedName;public class UserPageParse {@SerializedName("page")Integer page;@SerializedName("total")Integer total;@SerializedName("total_pages")Integer total_pages;
}

接下来创建api接口类ApiService

package com.example.myapplication;import retrofit2.Call;
import retrofit2.http.Field;
import retrofit2.http.FormUrlEncoded;
import retrofit2.http.GET;
import retrofit2.http.POST;
import retrofit2.http.Query;public interface ApiService {// get请求@GET("api/users")// UserList 请求函数名,page请求参数Call<UserPageParse> UserList(@Query("page") Integer page);
}

请求实现:

// retrofit2 get 请求
private void retroFit2getDemo(){String baseUrl = "https://reqres.in/";Retrofit mRetrofit = new Retrofit.Builder().baseUrl(baseUrl)// 将字符串转换成java对象.addConverterFactory(GsonConverterFactory.create()).build();tvContent.setText("异步请求中.......");mRetrofit.create(ApiService.class).UserList(2).enqueue(new retrofit2.Callback<UserPageParse>() {@Overridepublic void onResponse(retrofit2.Call<UserPageParse> call, retrofit2.Response<UserPageParse> response) {// 处理请求成功的响应Integer page = response.body().page;Integer total = response.body().total;Integer total_pages = response.body().total_pages;// 在这里处理响应数据tvContent.setText("异步请求成功" + ',' + page + ',' + total + ',' + total_pages);}@Overridepublic void onFailure(retrofit2.Call<UserPageParse> call, Throwable t) {// 处理请求失败tvContent.setText("异步请求失败");}});
}

效果图:
在这里插入图片描述