我需要发送JsonArray
进行维修,并收到JsonObject
作为回报。
我使用了以下代码。
@POST
Call<JsonArray> networkUtilityJsonArrayPostCall(
@Url String url,
@Body JsonArray jsonArray);
然后我通过使用以下代码来调用它。
callJsonArray = api.networkUtilityJsonArrayPostCall(URL, jsonArray)
它收到响应代码200
,但不执行onResponse
块,因为它期望JsonArray
响应。
callJsonArray.enqueue(new Callback<JsonArray>() {
@Override
public void onResponse(Call<JsonArray> call, Response<JsonArray> response) {
答案 0 :(得分:2)
使用
@POST
Call<JSONObject> networkUtilityJsonArrayPostCall(
@Url String url,
@Body JsonArray jsonArray);
代替下面的方法
@POST
Call<JsonArray> networkUtilityJsonArrayPostCall(
@Url String url,
@Body JsonArray jsonArray);
并替换各自继承的方法
答案 1 :(得分:2)
使用此
@POST
Call<ResponseBody> networkUtilityJsonArrayPostCall(
@Url String url,
@Body JsonArray jsonArray);
回调函数中的body参数现在包含服务器响应,您可以通过调用responseBody.string();
答案 2 :(得分:1)
请致电ResponseBody
而不是JsonArray
:如果您不确定JSON structure
。
@POST
Call<ResponseBody> networkUtilityJsonArrayPostCall(@Url String url, @Body JsonArray jsonArray);