@artshelom

Как передать параметр в httpurlcon??

public static String excutePost(String targetURL, String urlParameters)
{
    URL url;
    HttpURLConnection connection = null;
    try {
        //Create connection
        url = new URL(targetURL);
        connection = (HttpURLConnection)url.openConnection();
        connection.setRequestMethod("POST");
        connection.setRequestProperty("Content-Type",
                "application/x-www-form-urlencoded");
//        connection.setRequestProperty("chat_id", "***");
//        connection.setRequestProperty("text", "Hello, world");
        Map<String,Object> params = new LinkedHashMap<>();
        params.put("chat_id", "***");
        params.put("text", "Hello, world");

        connection.setUseCaches (false);
        connection.setDoInput(true);
        connection.setDoOutput(true);

        InputStream is = connection.getInputStream();
        BufferedReader rd = new BufferedReader(new InputStreamReader(is));
        String line;
        StringBuffer response = new StringBuffer();
        while((line = rd.readLine()) != null) {
            response.append(line);
            response.append('\r');
        }
        rd.close();
        return response.toString();

    } catch (Exception e) {

        e.printStackTrace();
        return null;

    } finally {

        if(connection != null) {
            connection.disconnect();
        }
    }
}

Не могу понять как передать параметры post запросом телеграмму. Параметры text и chat_id
Помогите новичку
  • Вопрос задан
  • 53 просмотра
Пригласить эксперта
Ответы на вопрос 1
AlexXYZ
@AlexXYZ
O Keep Clear O
Параметры, передаваемые через POST - это просто строка формата param1=value1&param2=value2, но передаваемая в теле запроса, а не в адресной строке. Вот хороший пример преобразования, где учтено экранирование: stackoverflow.com/questions/7671597/convert-map-to...

connection.setDoOutput(true);  // После этой строки писать всё остальное
StringBuilder sb = new StringBuilder();
  for(HashMap.Entry<String, String> e : queryString.entrySet()){
      if(sb.length() > 0){
          sb.append('&');
      }
      sb.append(URLEncoder.encode(e.getKey(), "UTF-8")).append('=').append(URLEncoder.encode(e.getValue(), "UTF-8"));
  }

// Теперь нужно эти данные передать в тело запроса:

        DataOutputStream wr = new DataOutputStream(connection.getOutputStream());
        wr.write(sb.toString().getBytes());
        wr.flush();
        wr.close();
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы
28 нояб. 2024, в 05:21
2000 руб./за проект
28 нояб. 2024, в 05:18
500 руб./за проект
28 нояб. 2024, в 03:51
3500 руб./за проект