2010-01-27 2 views
13

Я после примера описываю использование HTTP-клиента Twisted.twisted http client

После прочтения отличного blog post on the internals of Twisted я понимаю, как компоненты «Фабрика» и «Протокол» играют свою роль, но я не понимаю, как ввести «Запрос» в общий поток клиентов.

В частности, мне нужно иметь возможность выполнять HTTP GET и POST-запросы на удаленный сервер с помощью Twisted.

Обновлено: после обсуждения на ИРЦ #twisted/#python, кажется, что twisted.web2 угасает в пользу наращивает функциональность на twisted.web например Агент.

ответ

17

С Twisted 9.0 на самом деле есть два клиента HTTP. Старшее один имеет довольно много функций, таких как автоматически после перенаправления, интерпретации заголовков куки и т.д. Вы можете найти пример его использования здесь:

http://twistedmatrix.com/documents/current/web/examples/

(getpage.py и dlpage.py)

К сожалению , интерфейс, представленный старым клиентом, затрудняет ряд общих задач. Например, используя getPage, вы не можете просмотреть произвольные заголовки ответов.

Новейший HTTP-клиент еще не настолько функциональен, как старый, но представляет собой интерфейс, предназначенный для устранения ограничений getPage. Он также предназначен для более простого расширения и настройки. Вы можете найти документ, описывающий его использование здесь:

http://twistedmatrix.com/documents/current/web/howto/client.html

+0

Изумительный! Именно то, что мне нужно! – jldupont

+1

... кроме только в 9.0.0 ... arhhh! – jldupont

+5

Предпочитаете ли вы, чтобы мы перестали улучшаться, чтобы новые версии не содержали ничего хорошего? :) – Glyph