我在Java Servelt中从android中检索作为 HttpEntity 发送的JSON对象时遇到了问题。以下是我的代码
Android代码:
**
List<NameValuePair> nameValuePairs = new ArrayList<NameValuePair>(2);
nameValuePairs.add(new BasicNameValuePair("order", d));
httpPost.setEntity(new UrlEncodedFormEntity(nameValuePairs));
httpResponse = httpClient.execute(httpPost);
**
Servlet代码:
InputStream in = request.getInputStream();
StringBuffer xmlStr=new StringBuffer();
int d;
while((d=in.read()) != -1){
xmlStr.append((char)d);
}
System.out.println("xmlStr1--"+xmlStr.toString());
servelt代码中的上述语句打印JSON中的数据,但是所有垃圾值都是这样的
xmlStr1 - 为了=%7B%22orderno%22%3A%223%22%2C%22tableid%22%3A%227%22%2C%22kotid%22%3A%223%22%2C%22stewardid%22 %3A%223%22%2C%22items%22%3A%220%22%7D
请帮我检索这个以应用程序 HttpEntity 发送的JSON。
答案 0 :(得分:1)
数据不是JSON格式或XML格式。您的代码创建了Url-Encoded格式。 URL Encode and Decode Special character in Java描述了解码您创建的内容的代码,但该代码有其自身的问题。
如果您希望以JSON格式对NameValuePair列表进行编码,则可以在Android上使用GSON,在servlet中使用GSON或Jackson。请参阅https://code.google.com/p/google-gson/和http://jackson.codehaus.org/
答案 1 :(得分:0)
您应该只使用
String order = request.getParameter("order");