Передача параметров с HttpURLConnection

Со старым интерфейсом Apache, который устарел в API 22, я наконец-то приступил к обновлению своих сетевых компонентов.

С помощью 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+ на данный момент.

2 ответа

Решение

Я исправил это так:

       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();

Попробуй это:
/questions/46316668/otpravit-informatsiyu-iz-prilozheniya-android-v-veb-servis-i-obratno/46316698#46316698 если вам нужна дополнительная информация, просто дайте мне знать. надеюсь, это поможет!

Другие вопросы по тегам