Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > Работа с сетью в Delphi
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 13.05.2014, 16:15   #1
vmilyoshin
Пользователь
 
Регистрация: 20.02.2010
Сообщений: 66
По умолчанию Проблема с плюсами при отправки Post запроса TIHttp

Всем привет!
Столкнулся с такой проблемой.
Через программу сделанную в Delphi посредством API подключаюсь к серверу рассылки СМС.

Код:
 params:= TStringList.Create;
  http:= TIdHttp.Create(nil);
  http.HandleRedirects:= true;

  params.add('username='+AnsiToUtf8(DBEdit1.Text));
  params.add('password='+AnsiToUtf8(md(DBEdit2.Text)));
  params.add('sender='+AnsiToUtf8(Edit3.Text));
  params.add('numbers='+AnsiToUtf8(Edit4.Text));
  params.add('message='+AnsiToUtf8(Memo2.Text));
  s:= http.Post('http://api.sms.pro/send.php',params);
В параметре 'message' содержится текст СМС сообщения написанный в программе.

Проблема заключается в том, что если в тексте СМС имеется символ '+', то он приходит в виде пробела. Как с этим бороться?
vmilyoshin вне форума Ответить с цитированием
Старый 13.05.2014, 16:40   #2
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,792
По умолчанию

Нужно преобразовать сообщение. Используй функцию URLEncode() из пакета INDI
Или найди ее аналогичную реализацию на стороне: http://delphiworld.narod.ru/base/encode_url.html
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 13.05.2014, 17:01   #3
vmilyoshin
Пользователь
 
Регистрация: 20.02.2010
Сообщений: 66
По умолчанию

Если использовать функцию URLEncode() то СМС приходит вообще в таком формате %EF%E5%F2%FF%2B%2B7
vmilyoshin вне форума Ответить с цитированием
Старый 13.05.2014, 17:36   #4
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,792
По умолчанию

Ну дык используй URLDecode() для раскодирования
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 13.05.2014, 17:40   #5
ZuBy
Участник клуба
 
Аватар для ZuBy
 
Регистрация: 29.09.2008
Сообщений: 1,234
По умолчанию

+ обычно в таких сервисах указывает на прибавления текста А к Б,
Вам это критично?

сниффером не смотрел?
ZuBy вне форума Ответить с цитированием
Старый 13.05.2014, 17:44   #6
vmilyoshin
Пользователь
 
Регистрация: 20.02.2010
Сообщений: 66
По умолчанию

Цитата:
Сообщение от Stilet Посмотреть сообщение
Ну дык используй URLDecode() для раскодирования
После использования URLDecode() опять вместо плюсов пробелы.
vmilyoshin вне форума Ответить с цитированием
Старый 13.05.2014, 18:19   #7
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,792
По умолчанию

Странно... Я юзаю и без проблем...
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 13.05.2014, 18:21   #8
vmilyoshin
Пользователь
 
Регистрация: 20.02.2010
Сообщений: 66
По умолчанию

Цитата:
Сообщение от Stilet Посмотреть сообщение
Странно... Я юзаю и без проблем...
Ещё как странно))
vmilyoshin вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Проблема при отправке POST запроса nefakt Работа с сетью в Delphi 23 25.02.2014 10:41
при отправки post получаю socket error 10054 Smagulov85 Работа с сетью в Delphi 3 19.09.2012 01:03
Проблема при выполнении POST запроса. MrFriman Работа с сетью в Delphi 3 14.02.2012 09:11
Методы отправки post запросов H0sT Общие вопросы .NET 2 19.11.2011 22:27
Проблемы с кодировкой при выполнении post запроса FANATID Работа с сетью в Delphi 7 01.03.2009 14:46