通过HTTP POST发送params和Json

时间:2016-04-21 15:56:34

标签: android json http http-post

我需要你的帮助来理解这件事。 我必须发一个http post请求anche我必须发送参数和一个非常大的json数组(data = [jsonarray])。 现在,如果我必须发送只有参数没有问题..但我不知道我怎么能发送jsonarray。 我如何实现一个部分来发送我的jsonarray? 提前致谢。 这是我的代码:

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;
}

1 个答案:

答案 0 :(得分:0)

使用toString()方法将JSONArray转换为字符串。之后,您可以像任何其他参数一样将其添加到HashMap中。

String jsonArrayString = jsonArrayObject.toString();

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