我有一个
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
。
那是因为您不应该将 @Body 参数作为字符串传递。您应该从您尝试 POST 的 json 字符串创建一个对象并发送它。 例如,如果你想发送这个 json:
{ "data":"something" }
你创建了一个对象
class Request() {
String data;
}
然后将数据设置为“某事”并将
@Body String json
替换为 @Body Request request
此外,我建议使用 Gson 或 Moshi 等 JSON 解析库,这样您就可以更轻松地操作收到的数据。