簡體   English   中英

在主體Retrofit2中發布原始json

[英]Post raw json in body retrofit2

我想要這樣的json請求

{“ jsonrpc”:“ 2.0”,“ method”:“ testApi”,“ params”:{“ message”:“ abc”},“ id”:1}

我讀了帖子:

如何在翻新請求的正文中發布原始的整個JSON?

但我在retrofit2包中找不到類TypedInput,TypedByteArray,TypedString。 哪里?

數據發布到服務器需要backhend程序 ,該程序會將您的數據發布到服務器中的數據庫 .....

改裝后需要RESTAPI和POJO類....

API接口

public interface Api {
    @POST("/upload/{new}.json")
    Call<User> setData(@Path("new") String s1, @Body User user);
}

改造對象

Retrofit retrofit = new Retrofit.Builder()
                .baseUrl("here-your-url")
                .addConverterFactory(GsonConverterFactory.create()) 
                .build(); 

APi對象

Api api = retrofit.create(Api.class);

改造電話

Call<User> call = api.setData("mahesh", new User("mahesh", "delhi"));
    call.enqueue(new Callback<User>() {
        @Override
        public void onResponse(Call<User> call, Response<User> response) {
            t1.setText("Success");
        }

        @Override
        public void onFailure(Call<User> call, Throwable t) {
            Log.d("sam", "fail");
            t1.setText("fail");
        }
    });

POJO類//您創建的此類僅將json數據放入此POJOConvertion

public class User {

    String name;
    String address;

    public User(String name, String address) {
        this.address = address;
        this.name = name;
    }

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

    public String getAddress() {
        return address;
    }

    public void setAddress(String address) {
        this.address = address;
    }
}

享受編碼。

如果您想進行任何改造,請使用此 改造+火力地堡

要在Retrofit正文,請創建一個表示該正文的對象,該類包括String jsonrpcString method等。然后,將該對象傳遞給您在服務接口中定義的方法,並使用@Body進行參數設置注解。

這是POST正文對象的示例:

public class PostBody{

   String jsonprc;
   String method;
   Param param;

   public PostBody(...){
        //IMPLEMENT THIS
   }

   ...

   class Param{
       //IMPLEMENT THIS
   }

}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM