Конференция "Сети" » TIdHTTP заменяет = на ?
 
  • DmitriyG. © (19.09.09 16:30) [0]
    Почему TIdHTTP автоматически заменяет в адресе вида:
    http://blbalba.ru/zzz/n=15&v=2
    первый знак равно (после n) на знак вопроса '?', т.е. получается адрес:
    http://blbalba.ru/zzz/n?15&v=2

    var
    http :TIdHTTP;
    stream : TMemoryStream;
    begin
    ...
     http.Get('http://blbalba.ru/zzz/n=15&v=2', stream);
    ...



    Как можно избавиться от этого?
  • Медвежонок Пятачок © (19.09.09 17:06) [1]
    зачем избавляться от этого?
    если правильный разделитель гет-параметров это и есть знак вопроса?
  • DmitriyG. © (19.09.09 17:16) [2]
    Это понятно... Но если сайт принимает строку именно в таком формате и с вопросом - ресурс недоступен!!!
  • Медвежонок Пятачок © (19.09.09 17:24) [3]
    замени идшттп на идтспклиента и делай все вручную
  • Медвежонок Пятачок © (19.09.09 17:29) [4]
    либо на CreateOleObject('MSXML2.XMLHTTP');
  • DmitriyG. © (19.09.09 17:29) [5]
    Да просто казалось, что должно быть свойство, отвечающее за это...
  • Медвежонок Пятачок © (19.09.09 17:32) [6]
    исходники же есть
  • DmitriyG. © (19.09.09 19:24) [7]
    Исходники от нового Indy еще не скачал, но в том, который идет с Delphi 7 вроде бы ничего подобного сходу не нашел...Я сейчас использую инди для Delphi 2007 и 2009
  • Anatoly Podgoretsky © (20.09.09 00:08) [8]
    Надо сайт исправлять, поскольку подобный URL это грубое нарушение.
  • sniknik © (20.09.09 10:10) [9]
    > Как можно избавиться от этого?
    зачем? у тебя же строка запроса не верная, нет разделителя между юрл и параметрами, вот от этого надо избавляться... а там глядишь к правильному у TIdHTTP не будет претензий, и ничего он тебе не заменит...

    > Но если сайт принимает строку именно в таком формате и с вопросом - ресурс недоступен!!!
    это невозможно, без разделителя вся строка это адрес, а такого точно не может быть. (не будут же каждый вариант значения отдельного параметра регистрировать как отдельный юрл...)
  • DmitriyG. © (20.09.09 14:05) [10]
    Ладно...
    А такой адрес:
    'http://khm.google.com/kh/v=45&hl=ru&x=1&y=1&z=2&s=G'
    (извиняюсь за еще одно возможное грубое нарушение...)
  • McSimm © (20.09.09 15:57) [11]

    > а такого точно не может быть. (не будут же каждый вариант
    > значения отдельного параметра регистрировать как отдельный
    > юрл...)

    Вполне может такое быть, mod_rewrite позволяет преобразовывать части url в параметры.
    Использование = в url_path не запрещается, просто отмечается, что этот (и некоторые другие) символ может иметь специальное значение в рамках схемы


    > еще одно возможное грубое нарушение

    Нет нарушения.
  • sniknik © (20.09.09 22:45) [12]
    > А такой адрес:
    это просто сервер с "защитой от дурака", а должно быть так
    http://khm.google.com/kh?v=45&hl=ru&x=1&y=1&z=2&s=G
  • sniknik © (20.09.09 22:54) [13]
    кстати, а пошли "это" post-ом, и все дела, не должно заменится, а сервер разберется... раз такой умный. :)
  • DmitriyG. © (20.09.09 22:55) [14]
    Гм... Действительно - это выход... Видно смогли от дурака защититься :-)
    Спасибо большое, вроде бы все заработало...
  • sniknik © (20.09.09 23:01) [15]
    и еще кстати, я тут проверил данную ссылку, и никакой автоматической замены на ? не произошло... и урл доступен и картинку сохранил(проверить содержимое стрими), читаема получилась...
  • DmitryiG (21.09.09 09:25) [16]
    Странно, я использовал Indy и то которое идет вместе с Delphi 2007 и Delphi 2009.... Оба возвращают 404, а снифер показывает ?...
    Надо скачать новое...
  • sniknik © (21.09.09 16:54) [17]
    у меня D7, но инди 10й (в 9ке у меня были какие то проблемы с ssl, не помню, пришлось перейти)
  • sniknik © (21.09.09 16:59) [18]
    > Надо скачать новое...
    сначала попробуй исправленный в sniknik ©   (20.09.09 22:45) [12] урл. такой меняет еще что то?
  • DmitryiG (21.09.09 23:34) [19]
    С этим все впорядке... Уже использую его :-)
    Просто было интересно разобраться...
    А Инди насколько я знаю у меня тоже 10-ка...
 
Конференция "Сети" » TIdHTTP заменяет = на ?
Есть новые Нет новых   [134437   +29][b:0][p:0.001]