При разработке программы столкнулись с такой проблемой: Когда в пост-запросе передаётся ссылка такого вида: http://mysite.ru/go?id=1775497&ssid=gyurtnrutk&midd=gfgfg символ & распознается как дополнительный параметр в пост запросе и все что после него отправляется отдельно есть ли какой-то метод корректно передать ссылку?
Да ладно? Чем отправляешь? Если на винсоках, то запрос будет выглядить так: Code: POST /go?id=1775497&ssid=gyurtnrutk&midd=gfgfg HTTP/1.1 Host: mysite.ru .... .... .... postvalue1=postkey1&postvalue2=postkey2
Значения параметров POST запроса должны передаваться в URL кодировке. А в ней символ амперсанда заменяется на %26
через idhttp Code: [B]var[/B] http_client : tidhttp; params : :tstringlist; message : string; [B]begin[/B] message := 'http://domen.ru/12345[B]&[/B]6789'; params.add('Message=' + message); http_client.Post('URL', params); [B]end;[/B] При этом постятся 2 параметра: Code: Message=http://domen.ru/12345 6789= Хотя должно быть так: Code: Message=http://domen.ru/12345&6789 Пробовали функцию TIdURI.URLEncode, не помогло Попробовал руками заменить, проходит нормально но ссылка уже получается битой почемуто
Ты через компоненту шлеш запрос ? если да то там есть опция передавать знак как знак и ли его аски код.
Например http://tinyurl.com/62cvp&random - норм редиректит http://tinyurl.com/62cvp%26random - не редиректит Да, нашел, спасиб. Всем спасибо, решили проблему