【发布时间】:2018-06-04 04:35:16
【问题描述】:
所以我正在尝试发出服务器请求,该请求的预期正文如下所示:["1"]
但如果我将字符串发送为"[\"1\"]",则会收到错误消息
查看正文,很明显我必须发送 JSONArray ,我尝试使用以下代码实现此目的:
JSONArray array = new JSONArray();
array.put("1");
但我在听诊器上的身体显示为:
{
"values":["1"]
}
也许我使用了错误的类或其他东西!
编辑:
这是我的 api 调用
OkHttpClient okHttpClient = new OkHttpClient.Builder()
.addNetworkInterceptor(new StethoInterceptor())
.build();
RetrofitService retrofitService2 =new Retrofit.Builder()
.baseUrl("http://blynk-cloud.com/")
.client(okHttpClient)
.addConverterFactory(GsonConverterFactory.create())
.build()
.create(RetrofitService.class);
retrofitService2.closeDoor("3bf11f14e6094dd5a8f31f6d6fac8f3d",
"[\"1\"]")
.enqueue(new Callback<String>() {
@Override
public void onResponse(Call<String> call, Response<String> response) {
{
}
}
@Override
public void onFailure(Call<String> call, Throwable t) {
}
});
closeDoor 方法:
@PUT("/{id}/update/D12")
Call<String> closeDoor(@Path("id") String id, @Body String code);
【问题讨论】:
-
["1"]不是格式正确的 JSON 字符串。如果这是您必须发送的内容,那么您将无法从任何 Android JSON 类中获取它;你只需要自己构造字符串并发送它。 -
我使用 "[\"1\"]" 将 ["1"] 作为字符串发送,但它仍然给我同样的问题
-
您能否更新您的帖子以包含您用于创建 HTTP 请求并发送它的代码?您使用的是原生 HttpURLConnection 类还是 HTTP 库?
-
在这里使用改造我得到服务器错误代码 500,一切似乎都很好,除了身体,你确定是这样吗?
-
发布你的
RetrofitService接口,至少closeDoor方法。那里可能有一些线索。
标签: java android arrays json retrofit