LUETTEE
@LUETTEE

Как использовать перенос строки в http запросе?

Я хотел использовать \n для переноса строки, но у меня появляется ошибка:
java.net.MalformedURLException: Illegal character in URL

код для get запроса

package com.luettee.telegram.http;

import org.json.JSONObject;

import java.io.IOException;
import java.io.InputStreamReader;
import java.io.BufferedReader;

import java.net.HttpURLConnection;
import java.net.MalformedURLException;
import java.net.URL;
import java.nio.charset.StandardCharsets;

public class Request {

    public static Response get(String url) {
        HttpURLConnection connection = null;
        BufferedReader buffer = null;
        Response resp = new Response();

        try {
            connection = (HttpURLConnection) new URL(url).openConnection();

            connection.setRequestMethod("GET");
            connection.setUseCaches(false);
            connection.setConnectTimeout(30000);
            connection.setReadTimeout(30000);

            connection.connect();

            if (connection.getResponseCode() == 200 ) {
                buffer = new BufferedReader(new InputStreamReader(connection.getInputStream(), StandardCharsets.UTF_8));

                String response = "";
                String line;

                while ((line=buffer.readLine()) != null ) {
                    response = response + line;
                }

                resp.setString( response);
                resp.setJson( new JSONObject(response) );

            } else { System.out.println("fail: " + connection.getResponseCode() + ", " + connection.getResponseMessage()); }
        }
        catch (MalformedURLException e) { System.out.println("НЕПРАВИЛЬНАЯ ССЫЛКА \n" + e); }
        catch (Throwable cause) { cause.printStackTrace(); }
        finally {
            if (connection != null) {
                connection.disconnect();
            }
            if (buffer != null) {
                try { buffer.close(); }
                catch (IOException e) { throw new RuntimeException(e); }
            }
        }

        return resp;
    }
}


Перенос строки мне нужен, чтобы отправить сообщение в телеграм.
Примерный вид запроса который я отправляю:
https://api.telegram.org/bot<token>/sendMessage?chat_id=666&text=перенос\nстроки
  • Вопрос задан
  • 188 просмотров
Решения вопроса 1
sergey-gornostaev
@sergey-gornostaev Куратор тега Java
Седой и строгий
Использовать URL encoding.
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

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

Похожие вопросы