Retrofit 官网: https://square.github.io/retrofit/
示例如下
HttpService.java
- import okhttp3.RequestBody;
- import retrofit2.Call;
- import retrofit2.http.Body;
- import retrofit2.http.Headers;
- import retrofit2.http.POST;
- public interface HttpService {
- String BASE_URL = "http://47.99.62.153:7076/";
- @Headers("Content-Type: application/json")
- @POST("xinyan/resultCallBack")
- Call<ResultCallbackReply> getResultCallback(@Body RequestBody body);
- }
Entry.java
- import okhttp3.MediaType;
- import okhttp3.RequestBody;
- import retrofit2.Call;
- import retrofit2.Callback;
- import retrofit2.Response;
- import retrofit2.Retrofit;
- import retrofit2.converter.gson.GsonConverterFactory;
- import java.util.logging.Level;
- import java.util.logging.Logger;
- public class Entry {
- private static final Logger LOGGER = Logger.getLogger(Entry.class.getName());
- public static void main(String[] args) {
- HttpService service = new Retrofit.Builder().baseUrl(HttpService.BASE_URL).addConverterFactory(GsonConverterFactory.create()).build().create(HttpService.class);
- String body = "{\"token\": \"This is a token!\"}";
- RequestBody requestBody = RequestBody.create(MediaType.parse("application/json"), body);
- service.getResultCallback(requestBody).enqueue(new Callback<ResultCallbackReply>() {
- @Override
- public void onResponse(Call<ResultCallbackReply> call, Response<ResultCallbackReply> response) {
- ResultCallbackReply reply = response.body();
- LOGGER.log(Level.INFO, reply.getMsg());
- }
- @Override
- public void onFailure(Call<ResultCallbackReply> call, Throwable t) {
- LOGGER.log(Level.SEVERE, null, t);
- }
- });
- }
- }
- build.gradle
- dependencies {
- ...
- implementation 'com.squareup.retrofit2:retrofit:2.5.0'
- implementation 'com.squareup.retrofit2:converter-gson:2.5.0'
- }
使用 @Headers("Content-Type: application/json") 设置 Content-Type 为 application/JSON
RequestBody 指示了请求体, RequestBody.create(MediaType contentType, String content) 创建 RequestBody 对象
来源: http://www.bubuko.com/infodetail-3005644.html