如何将 JSONObject POST 到 Retrofit 请求正文中的原始 JSON

问题描述 投票:0回答:1

我有一个

JSONObject
,我需要将这个
JSONObject
传递给服务器。使用
POST
方法。

@POST("Sync_Status")
    @Headers("Content-Type: application/json; charset=utf-8")
    Call<String> LookupSyncStatus(@Body String json, @Header("Authorization") String authToken);

public void SyncStatus(String requestbody, RetrofitCallback<String> retrofitCallback){
  
        Call<String> call = RetrofitClientInterface.getUserService().LookupSyncStatus(requestbody ,authkey);

        callForStatusJson(call, retrofitCallback);

这是包含数据的请求正文,并使用 Postman 检查它是否工作正常。但Android不传体。不知怎的,身体仍然是空的

传递数据时显示

400 error Bad Request

android json post retrofit
1个回答
0
投票

那是因为您不应该将 @Body 参数作为字符串传递。您应该从您尝试 POST 的 json 字符串创建一个对象并发送它。 例如,如果你想发送这个 json:

{ "data":"something" }

你创建了一个对象

class Request() {
    String data;
}

然后将数据设置为“某事”并将

@Body String json
替换为
@Body Request request

此外,我建议使用 Gson 或 Moshi 等 JSON 解析库,这样您就可以更轻松地操作收到的数据。

© www.soinside.com 2019 - 2024. All rights reserved.