urlfetch.fetch () из Google App Engine не отображается в Fiddler2 - PullRequest
1 голос
/ 16 августа 2011

Я тестирую приложение Google App Engine на моей машине с Windows, работающее локально на localhost: 8084.Fiddler2 показывает всю мою активность, когда я перемещаюсь по своему приложению, но при запросе внешнего URL с помощью urlfetch.fetch () он вообще не отображается в Fiddler, даже при использовании http, а не адреса https, и при успешномкод ответа 200 в ответе.

Что мне нужно сделать, чтобы запрос urlfetch.fetch () от Google App Engine появился в Fiddler2?

Ответы [ 2 ]

5 голосов
/ 16 августа 2011

Насколько я понимаю, Fiddler2 работает как HTTP-прокси;запросы браузера идут через этот прокси, а не напрямую к интернет-ресурсу.Это позволяет Fiddler2 собирать информацию о запросе и ответе.

В соответствии с документами Fiddler2 : «Вы можете настроить любое приложение, которое принимает HTTP-прокси, для запуска через Fiddler, чтобы вы могли отлаживать его трафик».Поэтому я думаю, что вам нужно изменить вызов API URLFetch, чтобы использовать прокси, предоставляя URL и порт Fiddler.Однако в документации URLFetch не указано, как именно это сделать.Вы можете использовать urllib2, как указано в этом вопросе .

1 голос
/ 02 сентября 2012

Irussell, как правило, прав, но я бы хотел сделать ответ более конкретным.

Поскольку прокси не поддерживаются в производственной среде Google AppEngine, он также напрямую не поддерживается движком разработки.Похоже, что единственный способ преодолеть это ограничение - это изменить код сервера разработки AppEngine.

Вам придется изменить файл urlfetch_stub.py, добавив следующие строки:

connection = connection_class('127.0.0.1', 8888)

и

full_path = protocol + "://" + host + full_path

Подробное объяснение вы можете найти в моем блоге Использование Fiddler для отладки запросов urlfetch в Google AppEngine

...