1. 程式人生 > >使用Retrofit發送POST請求提交JSON數據

使用Retrofit發送POST請求提交JSON數據

git clas factor 例如 .info baseurl oid ice color

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對象

使用Retrofit發送POST請求提交JSON數據