微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

android http 发送json数据

Android开发中HTTP发送数据是常见的需求,其中JSON数据的传输也很普遍。本文将介绍如何在Android中使用HTTP发送JSON数据。

android http 发送json数据

首先需要创建一个HTTP请求,这可以使用Android中的HttpURLConnection类来实现。下面是一个基本的HttpURLConnection的示例代码

HttpURLConnection connection = null;
try {
    URL url = new URL("http://example.com/api/endpoint");
    connection = (HttpURLConnection) url.openConnection();
    connection.setRequestMethod("POST");
    connection.setRequestProperty("Content-Type","application/json;charset=UTF-8");
    connection.setRequestProperty("Accept","application/json");
    connection.setDoOutput(true);

    // Todo: 在此处添加JSON数据

    // 获取HTTP响应代码和响应内容
    int statusCode = connection.getResponseCode();
    InputStream inputStream;
    if (statusCode >= 400) {
        inputStream = connection.getErrorStream();
    } else {
        inputStream = connection.getInputStream();
    }
    InputStreamReader inputStreamReader = new InputStreamReader(inputStream,"UTF-8");
    BufferedReader bufferedReader = new BufferedReader(inputStreamReader);
    String line;
    StringBuilder stringBuilder = new StringBuilder();
    while ((line = bufferedReader.readLine()) != null) {
        stringBuilder.append(line);
    }
    bufferedReader.close();
    inputStreamReader.close();
    inputStream.close();
    String response = stringBuilder.toString();
} catch (IOException e) {
    e.printstacktrace();
} finally {
    if (connection != null) {
        connection.disconnect();
    }
}

如上所述,我们需要设置HTTP请求方法为POST,并设置Content-Type和Accept头信息。在这个示例中我们将使用setDoOutput(true)方法来打开输出流。这意味着我们将在请求的消息体中添加JSON数据。

为了添加JSON数据,我们需要将数据转换为字符串并将其写入连接的输出流中。下面是一个示例方法

private static void writeJsonToStream(OutputStream outputStream,JSONObject jsonObject) throws IOException {
    String jsonString = jsonObject.toString();
    outputStream.write(jsonString.getBytes("UTF-8"));
    outputStream.flush();
}

在这方法中,我们将JSONObject对象转换为字符串并写入OutputStream中。最后我们需要在finally块中手动关闭连接。

这就是在Android中使用HTTP发送JSON数据的基本方法。记住,需要添加网络和权限这两个选项。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。

相关推荐