zoukankan      html  css  js  c++  java
  • 使用Retrofit发送POST请求提交JSON数据

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

  • 相关阅读:
    20、【Linux系统编程】 exec系列函数
    3、【Linux网络编程】socket实例
    c++ 二分答案(基础应用)
    c++ 迷宫搜索(宽搜)
    c++ 广度优先搜索(宽搜)
    栈的概念
    c++ 栈的基本应用
    队列的概念
    c++ 队列的基本应用
    Knight Moves
  • 原文地址:https://www.cnblogs.com/buyishi/p/10606073.html
Copyright © 2011-2022 走看看