当前位置: 首页 > 知识库问答 >
问题:

如何在Android中使用HttpURLConnection发送Json对象[重复]

孔君浩
2023-03-14

我正试图用android应用程序向我的web服务器发送一个Json对象。我发现的每个示例都使用了被android 6删除的HttpClient。有人能给我举一个HttpURLConnection方法的例子吗。

共有1个答案

傅边浩
2023-03-14

以下是如何使用HttpURLConnection的示例:

JSONObject json = getJSONData();
String targetURL = getTargetURL();

HttpURLConnection con = (HttpURLConnection)new URL(targetURL).openConnection();
con.setDoOutput(true);
con.setRequestMethod("POST");
con.setRequestProperty("Content-Type", "application/json");
con.setChunkedStreamingMode(0);

StringBuilder output = new StringBuilder();
output.append("data=");
output.append(URLEncoder.encode(data.get(json.toString()), "UTF-8"));

BufferedOutputStream stream = new BufferedOutputStream(con.getOutputStream());
stream.write(output.toString().getBytes());
out.flush();

con.connect();

Exception result = null;
int responseCode = con.getResponseCode();
switch(responseCode) {
    case 200: //all ok
        break;
    case 401:
    case 403:
        // authorized
        break;
    default:
        //whatever else...
        String httpResponse = con.getResponseMessage();
        BufferedReader br = new BufferedReader(new InputStreamReader(con.getErrorStream()));
        String line;
        try {
            while ((line = br.readLine()) != null) {
                Log.d("error", "    " + line);
            }
        }
        catch(Exception ex) {
            //nothing to do here
        }

        break;
}

con.disconnect();

也就是说,您应该认真考虑使用现有的库,这将对您隐藏其中的大部分内容。

 类似资料:
  • 问题内容: 我想发送以下JSON文本 到Web服务并读取响应。我知道如何读取JSON。问题是上述JSON对象必须以变量名发送。 我该如何从android做到这一点?创建请求对象,设置内容标头等步骤是什么。 问题答案: Android没有用于发送和接收HTTP的特殊代码,您可以使用标准Java代码。我建议使用Android随附的Apache HTTP客户端。这是我用来发送HTTP POST的代码片段

  • 问题内容: 我想将JSON文本{}发送到Web服务并读取响应。我该如何从android做到这一点?创建请求对象,设置内容标头等步骤是什么。 我的代码在这里 我做过什么错误,请纠正我,因为它向我显示了错误的请求错误,但是当我在海报中发帖时,它向我显示了成功200的状态 问题答案: 我这样做 此外,还将Web服务URL作为参数。

  • 应用程序(Android): 在我运行这个应用程序的手机中,我嗅出了数据,我看到应用程序向服务器发送了一个请求,但数据包不包含json

  • 问题内容: 我想使用POST方法将JSONObject发送到服务器。我已经使用凌空库通过字符串参数来正常工作,但是如果我尝试使用json对象,则在调用json对象时显示错误,这是我的代码 我的错误表单服务器是: 如何解决这个问题呢。我要添加 标题,请检查我的代码是否正确。请给我一个解决这个问题的建议 问题答案: JsonObjectRequest中的第三个参数用于以jsonobject形式传递发布

  • 资源 ComplexObject类只是一个带有字符串的类。当我点击URL:http://localhost:8080/simple-service-webapp/webapi/myresource/This work时,我得到的是“get it!” 但是当我点击:http://localhost:8080/simple-service-webapp/webapi/myresource/comple

  • 我想发送一个JSON对象(注意,它不应该转换成字符串,因为服务器端代码是基于Spring starter项目的,它的params为(@requestbody PCAP PCAP))我有下面的代码,但它将主体转换成一个字符串,这给了我400个错误的请求。 注意:服务器端代码为