Я пишу интерфейс Python (2.6) для веб-службы. Мне нужно общаться через http, чтобы:
- Cookies обрабатываются автоматически,
- Запросы асинхронные ,
- Порядок , в котором отправляются запросы, соблюдается (порядок получения ответов на эти запросы не имеет значения).
Я попробовал то, что можно легко извлечь из встроенных библиотек, столкнувшись с различными проблемами:
- При использовании
httplib
и urllib2
запросы выполняются синхронно, если только я не использую thread
, и в этом случае порядок не гарантируется,
- При использовании
asyncore
не было библиотеки для автоматической обработки файлов cookie, отправляемых веб-службой.
После некоторого поиска в Google, кажется, есть много примеров скриптов или библиотек на python, которые соответствуют 2 из 3 критериев, но не 3 из них. Я думаю о том, чтобы прочитать источники cookielib
и адаптировать то, что мне нужно, к asyncore
(или только для моего приложения в режиме ad hoc ), но кажется странным, что ничего подобного не существует тем не менее, как я думаю, я не единственный, кто заинтересован. Если кто-нибудь знает об указателях на эту проблему, это будет с благодарностью.
Спасибо.
Изменить, чтобы уточнить:
То, что я делаю, - это локальный прокси, который связывает мой IRC-клиент с веб-чатом. Он создает сокет, который прослушивает IRC-соединения, а затем, получив его, регистрируется в веб-чате через http. У меня нет доступа к поведению веб-чата, и он использует куки для идентификаторов сеансов. Когда клиент отправляет несколько запросов IRC моему прокси-серверу Python, я должен перенаправить их на сервер веб-чата по протоколу http и с помощью файлов cookie. Я также хочу сделать это асинхронно (я не хочу ждать ответа http, прежде чем отправить следующий запрос), и в настоящее время происходит следующее: порядок, в котором отправляются запросы http, не соответствует порядку, в котором IRC команды были получены.
Надеюсь, это прояснит вопрос, и я, конечно, опишу подробнее, если это не так.