2013-03-11 66 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

相關問題