android 如何在Retrofit请求的主体中将JSONObject POST为原始JSON

t1qtbnec  于 2023-10-14  发布在  Android
关注(0)|答案(1)|浏览(140)

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

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

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

这里是包含数据的请求体,并与Postman检查了它,它工作正常。但Android不会通过身体。不知何故身体仍然空
在传递数据时显示400 error Bad Request

efzxgjgh

efzxgjgh1#

这是因为不应该将@Body参数作为String传递。你应该从你试图POST的json String创建一个Object并发送它。例如,如果你想发送这个json:

  1. { "data":"something" }

创建对象

  1. class Request() {
  2. String data;
  3. }

然后将数据设置为“something”并将@Body String json替换为@Body Request request
此外,我建议使用JSON解析库,如Gson或莫希,这样您就可以更轻松地处理收到的数据。

相关问题