簡體   English   中英

使用HttpURLConnection傳遞參數

[英]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));

現在NameValuePairBasicNameValuePair也被棄用了。

編輯:我的服務器端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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM