Topic: HTTPGet и UTF-8

Здравствуйте. Нужно подключить отправку СМС сообщений HTTP запросом через SMS.RU.
Нужно отправить HTTP запрос в кодировке UTF-8. Как это сделать?
Пробовал выгружать данные строки в файл, преобразовывать в кодировку UTF-8 через iconv, и загружать в запрос, но результата нет, все равно не правильная кодировка, получается  сам HTTP запрос отправляет данные не в той кодировке которая мне нужна.

Re: HTTPGet и UTF-8

Приветствую,


Извиняюсь за задержку с ответом, был в отпуске, вопрос все еще актуален для вас?

Dmitry.

Re: HTTPGet и UTF-8

Здравствуйте. Да актуален.

Re: HTTPGet и UTF-8

Проверил отправку смс с помощью этого сервиса, работает:

HTTPGet('http://sms.ru/sms/send?api_id=[api_id]&to=[номер получателя]&text=hello+world');

вместо [api_id] необходимо поставить id, который выдается после регистрации.


[номер получателя] - можете указать свой номер указанный при регистрации, тогда отправка смс будет бесплатна.

Dmitry.

Re: HTTPGet и UTF-8

Отправка работает, но сообщение на кириллице приходит вида "?????? ???? ???? ??"

Re: HTTPGet и UTF-8

В бета версии 2.5 проблема решена?

Re: HTTPGet и UTF-8

Rebrovvv wrote:

В бета версии 2.5 проблема решена?

Пока нет, разбираюсь, к сожалению лимит на бесплатные смс на свой номер мешает тестировать.

Dmitry.

Re: HTTPGet и UTF-8

Отправил Вам на электронку наш API_ID от SMS.RU с пополненным балансом

Re: HTTPGet и UTF-8

Rebrovvv wrote:

Отправил Вам на электронку наш API_ID от SMS.RU с пополненным балансом

Поправил, скачайте пожалуйста бета версию 2.5
https://www.dropbox.com/s/kfh2q7h8l73lx … a.zip?dl=0


пример отправки

procedure Form1_Button2_OnClick (Sender: string; var Cancel: boolean);
var
    s: string;
begin
    s := HTTPEncode('Привет всем');
    HTTPGet('http://sms.ru/sms/send?api_id=[api_id]&to=[phone]&text='+s);
end;
Dmitry.

Re: HTTPGet и UTF-8

Спасибо!

Re: HTTPGet и UTF-8

Не хочется плодить темы. А как поправить кодировку при HTTPPost?

Re: HTTPGet и UTF-8

Raspr wrote:

Не хочется плодить темы. А как поправить кодировку при HTTPPost?

Пожалуйста, опишите подробней проблему.

Dmitry.

Re: HTTPGet и UTF-8

При:

s := SQLExecute('SELECT messsms FROM sending WHERE id = '+IntToStr(idN));
sms := HTTPEncode(s);
HTTPGet('https://sms.ru/sms/send?api_id='+SMS_API+'&to='+tel+'&msg='+sms+'&json=1');

приходит сообщение нормально.
При:

s := SQLExecute('SELECT messsms FROM sending WHERE id = '+IntToStr(idN));
sms := HTTPEncode(s);

slParam := TStringList.Create;
slParam.Add('api_id='+SMS_API);
slParam.Add('text='+sms);
slParam.Add('to='+tel);
slParam.Add('json=1');
HTTPPost('http://sms.ru/sms/send', slParam);

иероглифы.

SMS.ru рекомендуют, при большом кол-ве адресатов телефоны отправлять методом POST. Конечно, работает вариант:

HTTPPost('http://sms.ru/sms/send?text='+msms, slParam);

Но, красоты ради... smile

Re: HTTPGet и UTF-8

Попробуйте не использовать HTTPEncode при использовании HTTPPost

Dmitry.

Re: HTTPGet и UTF-8

Спасибо! Получилось.