Форум программистов «Весельчак У»
  *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

  • Рекомендуем проверить настройки временной зоны в вашем профиле (страница "Внешний вид форума", пункт "Часовой пояс:").
  • У нас больше нет рассылок. Если вам приходят письма от наших бывших рассылок mail.ru и subscribe.ru, то знайте, что это не мы рассылаем.
   Начало  
Наши сайты
Помощь Поиск Календарь Почта Войти Регистрация  
 
Страниц: [1]   Вниз
  Печать  
Автор Тема: httppost и отображение знака & как знака?  (Прочитано 10428 раз)
0 Пользователей и 1 Гость смотрят эту тему.
maloy_ya
Участник

ua
Offline Offline
Пол: Мужской

« : 11-03-2012 17:35 » 

Доброго времени суток! если кто знает подскажите пожалуйста! есть сайт на котором нужно в параметре при пост запросе отправить такое:
Код:
  da.Add('title='+title);
  da.Add('body='+body);
  da.Add('user_entered_date=');
  da.Add('category=5774977');
  da.Add('allow_comment=on');
  da.Add('draft=False');
  da.Add('htmleditor=False');
  da.Add('publishButton=Spara & publicera');
так вот в последнем параметре знак амперсанда должен отправляться как знак а он понимается как начало другого параметра и от мне отправляет отдельно:
Код:
publishButton=Spara
publicera
пробовал && пробовал ^& пробовал отключать в httpOptions -  [hoForceEncodeParams] все постарому если представить его как %26 всеровно ничего не меняеться! подскажите как это сделать если кто знает??
Записан
RXL
Технический
Администратор

ru
Offline Offline
Пол: Мужской

WWW
« Ответ #1 : 12-03-2012 03:50 » 

maloy_ya, почитай RFC1738 или хотя бы Википедию на предмет формата и кодирования строки запроса.

Параметры POST кодируются согласно указанному при отправке MIME-типу. Обычно они кодируются как "application/x-www-form-urlencoded". Т.е. формат совпадает с форматом параметров URL.
« Последнее редактирование: 12-03-2012 03:56 от RXL » Записан

... мы преодолеваем эту трудность без синтеза распределенных прототипов. (с) Жуков М.С.
maloy_ya
Участник

ua
Offline Offline
Пол: Мужской

« Ответ #2 : 12-03-2012 16:46 » 

поставил + вместо пробелов и отключил [hoForceEncodeParams] и всё прошло! всем спасибо вопрос решен!
Записан
RXL
Технический
Администратор

ru
Offline Offline
Пол: Мужской

WWW
« Ответ #3 : 12-03-2012 17:25 » 

Амперсанд тоже надо закодировать в формат %xx

Если у тебя компонент сам кодирует параметры, то заменять пробелы на плюсы ни к чему.
« Последнее редактирование: 12-03-2012 17:37 от RXL » Записан

... мы преодолеваем эту трудность без синтеза распределенных прототипов. (с) Жуков М.С.
maloy_ya
Участник

ua
Offline Offline
Пол: Мужской

« Ответ #4 : 14-03-2012 14:32 » 

дело в том что компонент настроен кодировать но он дружен далеко не со всеми кодировками и при приведении амперсанда к виду %xx ничего не произошло и при замене пробелов на плюсы к сожалению тоже! так что пришлось отключить кодирование и заменить амперсанд и пробелы на выше указанные знаки и тогда он отправил правильно! ну а руские символы само собой отправились вопросиками так что пришлось их кодировать ручками. Вот такая беда, не могу сказать почему может от версии или ревизии инди зависит как бы не самую последнюю юзаю!
Записан
RXL
Технический
Администратор

ru
Offline Offline
Пол: Мужской

WWW
« Ответ #5 : 14-03-2012 16:45 » 

maloy_ya, утомительно читать твои шифрограммы. Попробуй писать нормально.
Записан

... мы преодолеваем эту трудность без синтеза распределенных прототипов. (с) Жуков М.С.
Dimka
Деятель
Команда клуба

ru
Offline Offline
Пол: Мужской

« Ответ #6 : 14-03-2012 18:25 » 

В общем, скажите ему функцию в PHP, которая принимает на вход строчку того, что он хочет отправить, и выдаёт закодированный через %xx вариант.
Записан

Программировать - значит понимать (К. Нюгард)
Невывернутое лучше, чем вправленное (М. Аврелий)
Многие готовы скорее умереть, чем подумать (Б. Рассел)
RXL
Технический
Администратор

ru
Offline Offline
Пол: Мужской

WWW
« Ответ #7 : 14-03-2012 21:25 » 

Dimka, а при чем тут PHP? Раздел то Delphi.

maloy_ya, как называется компонент?
Записан

... мы преодолеваем эту трудность без синтеза распределенных прототипов. (с) Жуков М.С.
Dimka
Деятель
Команда клуба

ru
Offline Offline
Пол: Мужской

« Ответ #8 : 15-03-2012 06:32 » 

RXL, а, это меня переклинило.

Но функцию ему скажите. Улыбаюсь В .NET есть такие Encode и Decode где-то в Web-классах.
Записан

Программировать - значит понимать (К. Нюгард)
Невывернутое лучше, чем вправленное (М. Аврелий)
Многие готовы скорее умереть, чем подумать (Б. Рассел)
zubr
Модератор

by
Offline Offline
Пол: Мужской

« Ответ #9 : 15-03-2012 07:12 » 

В дельфи вроде нет подобных функций. Я помнится сам их писал, и теперь их использую для приложений, работающих с http-протоколом. Правда все эти компоненты типа httppost стараюсь не использовать. А тут скорее всего какие то траблы с компонентом или у него надо устанавливать какие то свойства, чтобы декодирование правильно работало.
Записан
maloy_ya
Участник

ua
Offline Offline
Пол: Мужской

« Ответ #10 : 17-03-2012 19:30 » new

компонент tidhttp есть там функции http.url.encode помоему так но он не захотел через них! почему и спрашивал у вас! просто наверное инди кривоватое
Записан
Страниц: [1]   Вверх
  Печать  
 

Powered by SMF 1.1.21 | SMF © 2015, Simple Machines