5

在 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+。

4

1 回答 1

7

我这样修复它:

       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();
于 2015-04-01T02:28:19.373 回答