在Android中使用Retrofit进行GET和POST请求的身份验证,可以通过以下步骤进行:
implementation 'com.squareup.retrofit2:retrofit:2.x.x'
ApiService
的Java接口,并添加GET和POST请求的方法:public interface ApiService {
@GET("url")
Call getMethodName();
@FormUrlEncoded
@POST("url")
Call postMethodName(@Field("param1") String param1, @Field("param2") String param2);
}
Retrofit retrofit = new Retrofit.Builder()
.baseUrl("https://api.example.com/")
.addConverterFactory(GsonConverterFactory.create())
.build();
ApiService apiService = retrofit.create(ApiService.class);
Interceptor
接口的类,用于添加身份验证头部信息。例如:public class AuthInterceptor implements Interceptor {
private String authToken;
public AuthInterceptor(String authToken) {
this.authToken = authToken;
}
@Override
public Response intercept(Chain chain) throws IOException {
Request originalRequest = chain.request();
Request.Builder builder = originalRequest.newBuilder()
.header("Authorization", authToken);
Request newRequest = builder.build();
return chain.proceed(newRequest);
}
}
OkHttpClient.Builder httpClientBuilder = new OkHttpClient.Builder();
httpClientBuilder.addInterceptor(new AuthInterceptor("your_auth_token"));
OkHttpClient client = httpClientBuilder.build();
Retrofit retrofit = new Retrofit.Builder()
.baseUrl("https://api.example.com/")
.client(client)
.addConverterFactory(GsonConverterFactory.create())
.build();
ApiService apiService = retrofit.create(ApiService.class);
Call call = apiService.getMethodName();
call.enqueue(new Callback() {
@Override
public void onResponse(Call call, Response response) {
if (response.isSuccessful()) {
// 请求成功处理响应
ResponseBody responseBody = response.body();
// ...
} else {
// 请求失败处理错误
// ...
}
}
@Override
public void onFailure(Call call, Throwable t) {
// 请求失败处理错误
// ...
}
});
Call call = apiService.postMethodName("param1_value", "param2_value");
call.enqueue(new Callback() {
@Override
public void onResponse(Call call, Response response) {
if (response.isSuccessful()) {
// 请求成功处理响应
ResponseBody responseBody = response.body();
// ...
} else {
// 请求失败处理错误
// ...
}
}
@Override
public void onFailure(Call call, Throwable t) {
// 请求失败处理错误
// ...
}
});
这样,你就可以使用Retrofit进行GET和POST请求的身份验证了。记得替换实际的URL、参数和身份验证信息。