【发布时间】:2023-04-10 17:37:01
【问题描述】:
编辑:
在做了更多实验后,我发现只有在 JSON 字符串中引用了所有值时,该请求才会起作用。也就是说这行不通
{"Text":"test","RatingValue":0.0,"LocationID":5}
这会
{"Text":"test","RatingValue":"0.0","LocationID":"5"}
我不明白为什么。第一个字符串似乎是有效的 JSON 字符串。这是 WCF 的一个怪癖吗?
原帖
我正在尝试将新项目发布到 android 的集合中。我不断收到 400 的响应代码:错误请求。我不明白我做错了什么,我希望有人能帮助我。这是java代码。
HttpURLConnection conn = (HttpURLConnection) uri.toURL().openConnection();
conn.setRequestProperty("Content-Type", "application/json; charset=utf-8");
conn.setRequestProperty("Accept", "application/json");
conn.setRequestProperty("User-Agent", userAgent);
conn.setChunkedStreamingMode(0);
conn.setDoInput(true);
conn.setDoOutput(true);
conn.setRequestMethod("POST");
conn.connect();
DataOutputStream out = new DataOutputStream(conn.getOutputStream());
out.write(data.getBytes());
out.flush();
int code = conn.getResponseCode();
String message = conn.getResponseMessage();
conn.disconnect();
数据是一个 JSON 字符串,如下所示:
{"Text":"test","RatingValue":3.0,"ReviewID":0,"LocationID":5}
在这种情况下,ReviewID 是主键。
请求的 URL 指向评级集合。如果我将相同的位置粘贴到浏览器中,它会成功查询该集合。它看起来像这样:
http://localhost/DataService.svc/Ratings
【问题讨论】:
-
Bort,你是如何发布这个 json 的,你能在你准备这个 json 对象“数据”的地方发布一些代码吗?
-
错误响应正文中是否返回了消息?如果是这样,请编辑您的帖子以包含它。附带说明一下,大多数 REST 服务不接受主键作为创建请求的一部分。服务可能会因此而窒息。
-
尝试这些以启用更详细的错误消息,请在此处发布您得到的信息:blogs.msdn.com/b/phaniraj/archive/2008/06/18/…
标签: java android json post odata