Конференция "Сети" » Проблема с IdHTTP
 
  • kudatsky (15.06.12 18:10) [0]
    Одна из служб Google, Google Elevation, позволяет получить высоту точек на местности над уровнем моря: ей отправляется запрос с координатами одной или нескольких точек, а она возвращает их координаты. Ответ приходит в формате XML и затем обрабатывается.  Для передачи запросов я использую два способа:
    WEBBrowser1.Navigate(Request);
    S:=IdHTTP1.Get(Request);
    Первый способ работает без замечаний.
    Второй сразу после перезагрузки работает нормально. Но передав
    несколько тысяч запросов вдруг начинает возвращать сообщение
    от Google "OVER_QUERY_LIMIT" - выход за ограничения (там есть ограничения на количество точек и длину запроса). Эти же запросы TWEBBrowser отправляет и принимает нормально.
    Что тут может быть? Такое впечатление, что в процессе работы в запрос что то добавляется.
  • Медвежонок Пятачок © (15.06.12 18:29) [1]
    в запрос там ничего не добавляется.
    превышено допустимое количество запросов в единицу времени.
  • kudatsky (15.06.12 18:46) [2]
    Но TWEBBrowser работает совершенно нормально.
    С тем же запросом. Я бы не заморачивался, но
    Indy возвращает ответ в 2-3 раза быстрее.
  • Медвежонок Пятачок © (15.06.12 18:49) [3]
    Так и не заморачивайся.
  • brother © (15.06.12 18:51) [4]
    каким браузером представляется сайту инди?
  • Медвежонок Пятачок © (15.06.12 18:53) [5]
    а вот не покуй ли каким браузером там кто-то представляется
  • kudatsky (15.06.12 18:54) [6]
    Имеешь в виду User Agent ?
    Mozilla/3.0 (compatible; Indy Library)
  • brother © (15.06.12 18:58) [7]
    > а вот не покуй ли каким браузером

    имхо, не факт!

    > Indy Library

    говорит не о работе пользователя (вероятность), а о автоматике...
    попробуй сметить на нормальный юзер агент...
  • Медвежонок Пятачок © (15.06.12 18:58) [8]
    ага. попробуй еще монитор протереть.
  • brother © (15.06.12 19:00) [9]
    зы.
    > Indy возвращает ответ в 2-3 раза быстрее.

    значит и запросов ты отправляешь больше? пробуй уменьшить кол-во запросов в имнуту и опытным путем узнаешь, когда перестанет появляться

    > OVER_QUERY_LIMIT

    !
  • brother © (15.06.12 19:03) [10]
    Медвежонок Пятачок, не веди себя так! Лично у меня и так уже о тебе не хорошее мнение...
  • Медвежонок Пятачок © (15.06.12 19:05) [11]
    Это уже второй гениальный совет в ветке?
  • brother © (15.06.12 19:08) [12]
    гениальный? нет! ты о чем? Нам - простым смертным, до Вас - богов далеко!
  • kudatsky (15.06.12 19:08) [13]
    >brother
    У гугла об ограничении частоты запросов ничего не говорится.
    Тем не менее попробую.
  • brother © (15.06.12 19:10) [14]
    > У гугла об ограничении частоты запросов ничего не говорится.

    но ошибку же ты получаешь? :)
  • Медвежонок Пятачок © (15.06.12 19:23) [15]
    У гугла об ограничении частоты запросов ничего не говорится.

    Конечно нигде. Особенно если документацию к апи не читать.
  • Медвежонок Пятачок © (15.06.12 19:27) [16]
    Тем не менее попробую.

    Да стоит ли?

    Получено сообщение овер квери лимит.
    Известно, что идшттп тратит время только на сетевой транспорт в отличие от веббраузера.
    Известно, что идшттп быстрее исчерпывает лимит запросов.

    Любой высший примат типа шимпанзе в этом месте уже докумекает -  в чем там действительно заключена засада.
  • kudatsky (15.06.12 19:28) [17]
    Ошибку получаю от Indy. И не сразу, а спустя какое то время.
    TWEBBrowser  работает совершенно нормально.
    Кстати, как вариант. Для TWEBBrowser я испльзую такой код:
    WB.Navigate(Request);                                    
    while WB.ReadyState < READYSTATE_INTERACTIVE do
       Application.ProcessMessages;
    Т.е. программа ждёт, пока придёт ответ. Без этого программа ругается.
    Нет ли чего такого в Indy ? Может, есть какой то признак, что приём закончен?
  • Медвежонок Пятачок © (15.06.12 19:32) [18]
    конечно есть.
    возврат из метода гет - это и есть признак того, что прием закончен.
  • kudatsky (15.06.12 19:35) [19]
    Цитата со страницы:
    https://developers.google.com/maps/documentation/elevation/?hl=ru-RU#Limits
    "На использование Google Elevation API накладываются ограничения в отношении количества запросов: не более 2500 в день. В каждом запросе допускается указывать не более 512 местоположений, но не более 25 000 в день."
    Никаких ограничений там больше нет.
 
Конференция "Сети" » Проблема с IdHTTP
Есть новые Нет новых   [134435   +13][b:0][p:0.001]