繁体   English   中英

如何在Android上设置HttpPut的正文? (不添加库)

[英]How do I set the body of a HttpPut on Android? (without adding libraries)

我想将一些数据从Android应用程序上传到Pachube。

[更新:对于2013年阅读此内容的人来说,“Pachube”成为“Cosm”,现在是“Xively”。

这个投掷是以他们的文档为例。

如何通过Android的HttpPut(或HttpPost)实现来实现这一目标?

我真的不想添加任何额外的库,因为我想保持应用程序尽可能小。

我已经有了一个包含我数据的JSONObject。

这是一些伪代码。 请注意,您不应在PUT请求中发送表单url编码数据,因为它可能会破坏服务器端OAuth(如果使用):

HttpClient client = new DefaultHttpClient();
HttpPut put = new HttpPut(url);
put.addHeader("Content-Type", "application/json");
put.addHeader("Accept", "application/json");
put.setEntity(new StringEntity(jsonObj.writeValue()));
HttpResponse response = client.execute(put);

在没有任何其他库的情况下在Java / Android中执行此操作的一种方法是:

URL url = new URL("http://www.example.com/whatever");
HttpURLConnection httpCon = (HttpURLConnection) url.openConnection();
httpCon.setDoOutput(true);
httpCon.setRequestMethod("PUT");
OutputStreamWriter out = new OutputStreamWriter(httpCon.getOutputStream());
out.write("Data you want to put"); // for example your JSON object
out.close();

更新 - 根据评论:

您可以通过调用httpCon.getInputStream()和/或httpCon.getErrorStream()等来获取响应。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM