2013-03-11 109 views
0

我必须发送此JsonArray HTTP请求从客户端断开并且必须将它提取到servlet page..without NameValuePair Class,因为我的要求是不同势。如何从客户端(java或Android)发送JsonArray到servlet(服务器)

任何帮助,将不胜感激。

听到的是一些代码,我用送的参数,但这次它jsonArray,所以我不能用它

Map<String, String> params = new HashMap<String, String>(); 
    params.put(Constants.NAME, name); 

,然后楼体。

StringBuilder bodyBuilder = new StringBuilder(); 
Iterator<Entry<String, String>> iterator = params.entrySet().iterator(); 
// constructs the POST body using the parameters 
while (iterator.hasNext()) { 
    Entry<String, String> param = iterator.next(); 
    bodyBuilder.append(param.getKey()).append('=') 
      .append(param.getValue()); 
    if (iterator.hasNext()) { 
     bodyBuilder.append('&'); 
    } 
} 
String body = bodyBuilder.toString(); 

然后HTTP请求。

conn = (HttpURLConnection)url.openConnection(); 
     conn.setDoOutput(true); 
     conn.setUseCaches(false); 
     conn.setFixedLengthStreamingMode(bytes.length); 
     conn.setRequestMethod("POST"); 
     conn.setRequestProperty("Content-Type", 
       "application/x-www-forurlencoded;charset=UTF-8"); 
     // post the request 
     OutputStream out = conn.getOutputStream(); 

     out.write(bytes); 
+0

你不会得到这个问题的答案没有问题的一个更好的描述和一些代码示例。请阅读此http://stackoverflow.com/faq并重新格式化您的问题 – Neil 2013-03-11 08:00:33

+0

我知道这将是..特别是对于您先生看代码..plzz。:-) – 2013-03-11 08:03:22

+1

为什么不使用谷歌的gson库解析你的json。从客户端通过HTTP请求以字符串形式发送,并在服务器上读取您的json字符串。这是我通常使用的,它是最快和最简单的。如果需要,您还可以轻松加密字符串。 – Neil 2013-03-11 08:20:01

回答

1

AHHHHHH ...跳过额外的工作..对于那些了解我的问题,我发布的答案...使用该方法我提到的问题,你可以简单地接受JSONArray Servlet ..

要把它放到PARAMS正如我所提到

params.put("json", jsonArray.toString()); 

,然后在servlet的receivng ..

String jsonArray=request.getParameter("json"); 
    JSONArray jArr = new JSONArray(j.toString()); 
3

这样你就可以发送JSON阵列到服务器

HttpClient httpclient = new DefaultHttpClient(); 
HttpPost httppost = new HttpPost(url); 

StringEntity se = new StringEntity(jsonArray.toString()); 
se.setContentType(new BasicHeader(HTTP.CONTENT_TYPE, "application/json")); 
httppost.setEntity(se); 

HttpResponse response = httpclient.execute(httppost); 

的Servlet可以读取JSON数组像这样(使用此代码doPost方法里面的Servlet):

StringBuilder sb = new StringBuilder(); 
BufferedReader br = request.getReader(); 
String str; 
while((str = br.readLine()) != null){ 
    sb.append(str); 
}  
JSONArray jArr = new JSONArray(sb.toString()); 
+0

如何在servlet上接收它? – 2013-03-11 08:43:41

+0

在servlet中使用doPost方法中的第二个代码片段 – 2013-03-11 08:44:38

+0

我使用... params.put(“json”,jsonArray.toString())在字符串Form中发送JsonArray;以及如何再次将其转换为JsonArray? – 2013-03-11 08:49:07

相关问题