如何在Android中的HttpURLConnection中传递JsonObject?何时使用POST方法?

时间:2014-05-04 18:17:24

标签: android androidhttpclient

假设我的链接和参数如

url :https/example.com/folder/something
parameters  : JsonObject. such as
{
    "foldername" : "imageFolder",
    "jsonArray"  : ["abc","sdsf","sfsd"],
    "location"   : "Dhaka"
}

如何在Android中通过网址使用JsonObject方法发送POST?请帮助我任何人。

1 个答案:

答案 0 :(得分:0)

HttpURLConnection的文档已经有一个如何将数据发布到服务器的示例。我已经详细阐述了它,以显示JSONObject的创建并将数据写入OutputStream。

try {
    // Create parameters JSONObject
    String[] jsonArray = new String[] { "abc", "sdsf", "sfsd" };
    JSONObject parameters = new JSONObject();
    parameters.put("foldername", "imageFolder");
    parameters.put("jsonArray", new JSONArray(Arrays.asList(jsonArray)));
    parameters.put("location", "Dhaka");

    // Open connection to URL and perform POST request.
    URL url = new URL("https://example.com/folder/something");
    HttpURLConnection urlConnection = (HttpURLConnection) url.openConnection();
    urlConnection.setDoOutput(true); // Set Http method to POST
    urlConnection.setChunkedStreamingMode(0); // Use default chunk size

    // Write serialized JSON data to output stream.
    OutputStream out = new BufferedOutputStream(urlConnection.getOutputStream());
    BufferedWriter writer = new BufferedWriter(new OutputStreamWriter(out, "UTF-8"));
    writer.write(parameters.toString());

    // Close streams and disconnect.
    writer.close();
    out.close();
    urlConnection.disconnect();

} catch (MalformedURLException e) {
    e.printStackTrace();
} catch (JSONException e) {
    e.printStackTrace();
} catch (IOException e) {
    e.printStackTrace();
}