码迷,mamicode.com
首页 > Web开发 > 详细

使用Retrofit发送POST请求提交JSON数据

时间:2019-03-30 23:58:14      阅读:2569      评论:0      收藏:0      [点我收藏+]

标签:null   fit   media   depend   convert   post请求   nta   new   ati   

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数据

标签:null   fit   media   depend   convert   post请求   nta   new   ati   

原文地址:https://www.cnblogs.com/buyishi/p/10606073.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!