簡體   English   中英

如何將JsonArray從客戶端(java或Android)發送到servlet(服務器)

[英]How to Send JsonArray From Client(java or Android ) To servlet(Server)

我必須從客戶端發送帶有HTTP請求的JsonArray進行服務器發送,並且必須將其提取到servlet頁面上。沒有NameValuePair類,因為我的要求是不同的。

任何幫助,將不勝感激。

聽到是我用來發送參數的一些代碼,但是這次是它的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);

這樣,您可以將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數組(在Servlet的doPost方法內部使用此代碼):

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

Ahhhhhh ...跳過一些額外的工作..對於那些了解我的問題的人,我正在發布答案...使用我在問題中提到的方法,您可以將JsonArray接收到Servlet。

正如我提到的那樣,將其置於參數中

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

然后在servlet中接收。

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

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM