簡體   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