2016-04-21 166 views
-1

我需要你的幫助來理解這件事。 我必須做一個http post請求anche我必須發送參數和一個非常巨大的json數組(data = [jsonarray])。 現在,如果我只發送參數沒有問題..但我不知道我怎麼也發送jsonarray。 我如何實現一個部分發送我的jsonarray? 在此先感謝。 這裏是我的代碼:通過HTTP發送params和Json POST

public static String post(String requestURL, HashMap<String, String> postDataParams, JSONArray jsonArray) { 
    URL url; 
    String response = ""; 
    try { 
     url = new URL(requestURL); 

     HttpURLConnection conn = (HttpURLConnection) url.openConnection(); 
     conn.setReadTimeout(TIMEOUT_CONNECTION); 
     conn.setConnectTimeout(TIMEOUT_CONNECTION); 
     conn.setRequestMethod("POST"); 
     conn.setDoInput(true); 
     conn.setDoOutput(true); 

     if (postDataParams != null) { 
      OutputStream os = conn.getOutputStream(); 
      BufferedWriter writer = new BufferedWriter(
        new OutputStreamWriter(os, "UTF-8")); 

      writer.write(getPostDataString(postDataParams)); 

      writer.flush(); 
      writer.close(); 
      os.close(); 
     } 

     int responseCode = conn.getResponseCode(); 

     if (responseCode == HttpsURLConnection.HTTP_OK) { 
      String line; 
      BufferedReader br = new BufferedReader(new InputStreamReader(conn.getInputStream())); 
      while ((line = br.readLine()) != null) { 
       response += line; 
      } 
     } else { 
      response = ""; 

     } 
    } catch (Exception e) { 
     e.printStackTrace(); 
     response = ""; 
     String strParams = postDataParams != null ? postDataParams.toString() : ""; 
     IMLog.e(TAG, "Error...."); 
    } 

    return response; 
} 

回答

0

將您JSONArray使用toString()方法字符串。之後,您可以像其他任何參數一樣將其添加到您的HashMap中。

String jsonArrayString = jsonArrayObject.toString(); 

其中,jsonArrayObject:您的對象包含JSONArray。

+0

好吧,但如果JSONArray是非常巨大的?約3600件。我可以作爲正常的散列表參數發送嗎? – BoraBora

+0

是的。我不認爲這應該是一個問題。 –

+0

感謝隊友,有時我在一杯水中失去了我的自我! :) – BoraBora