[英]POST from android to WCF Service (OData)
编辑:
经过更多的实验后,我发现只有在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
尝试这个 :
HttpClient hc = new DefaultHttpClient();
HttpPost hp = new HttpPost("http://localhost/DataService.svc/Ratings");
HttpResponse hr;
JSONObject jo1 = new JSONObject();
joobject.put("Text", "test");
joobject.put("RatingValue", "3.0");
joobject.put("ReviewID", ".0");
joobject.put("LocationID", ".5");
StringEntity se = new StringEntity(joobject.toString(),HTTP.UTF_8);
se.setContentType("application/json");
hp.setEntity(se);
hr = hc.execute(hp);
也许有帮助
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.