![](/img/trans.png)
[英]HttpUrlConnection addRequestProperty Method Not Passing Parameters
[英]Passing Parameters with HttpURLConnection
在API 22中棄用了舊的Apache內容,我終於開始更新我的網絡內容了。
使用openConnection()
似乎非常簡單。 但是,我還沒有看到任何用它發送參數的好例子。
我該如何更新此代碼?
ArrayList<NameValuePair> param = new ArrayList<NameValuePair>();
param.add(new BasicNameValuePair("user_id",String.valueOf(userId)));
httpPost.setEntity(new UrlEncodedFormEntity(param));
現在NameValuePair
和BasicNameValuePair
也被棄用了。
編輯:我的服務器端php
代碼不期望JSON參數,我不能因為現有用戶突然切換 - 所以建議使用非JSON答案。
EDIT2:我現在只需要針對Android 4.1+。
我這樣修好了:
HttpURLConnection conn = (HttpURLConnection) url.openConnection();
conn.setDoOutput(true);
conn.setRequestMethod("POST");
conn.setRequestProperty("Content-Type", "application/x-www-form-urlencoded");
這是參數的東西:
String charset = "UTF-8";
String s = "unit_type=" + URLEncoder.encode(MainActivity.distance_units, charset);
s += "&long=" + URLEncoder.encode(String.valueOf(MainActivity.mLongitude), charset);
s += "&lat=" + URLEncoder.encode(String.valueOf(MainActivity.mLatitude), charset);
s += "&user_id=" + URLEncoder.encode(String.valueOf(MyndQuest.userId), charset);
conn.setFixedLengthStreamingMode(s.getBytes().length);
PrintWriter out = new PrintWriter(conn.getOutputStream());
out.print(s);
out.close();
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.