2014-01-24 2 views
0

Я использую Python и urllib2 для создания запросов POST, и у меня он успешно работает. Тем не менее, когда я делаю несколько сообщений один за другим, я иногда получаю прокси-сервер 502. Наша компания делает нас прокси, но я не настроен, чтобы попасть в прокси-сервер, поскольку я работаю внутри компании. Есть ли способ получить маршрут трассировки маршрутизации запроса POST с помощью urllib2 и Python?Python urllib2 trace route

Благодаря

ответ

0

Я не уверен, что вы имеете в виду под «следовым маршрутом». traceroute - это IP-вещь, на два уровня ниже HTTP. И я сомневаюсь, что ты хочешь ничего подобного. Вы можете узнать, были ли какие-либо переадресации, был ли использован прокси-сервер и т. Д., Либо с помощью универсального сниффера, либо, проще говоря, просто спрашивая urllib2.

Например, предположим, что ваш код выглядит следующим образом:

url = 'http://example.com' 
data = urllib.urlencode({'spam': 'eggs'}) 
req = urllib2.Request(url, data) 
resp = urllib2.urlopen(req) 
respdata = resp.read() 

Тогда req.has_proxy() о том, какой он собирается использовать прокси-сервер, resp.geturl() == url расскажет вам, был ли редирект и т.д. Читайте the docs для вся информация доступна.

Между тем, если вы не хотите прокси, вы можете либо отключить любые настройки urllib2 взял, что сделал это автоматически настроить прокси-сервер (например, unset http_proxy перед запуском сценария), переопределить цепочку обработчика по умолчанию для убедитесь, что нет ProxyHandler, постройте явный OpenerDirector вместо использования по умолчанию и т. д.