Форум сайта python.su
Добрый день.
В Twisted и в питоне я новичок. Неделю не могу решить задачу. Вся надежда на Вашу помощь.
Есть следующий код, который замечательно работает.
#!/usr/local/bin/python
# -*- coding: UTF-8 -*-
from twisted.internet import reactor
from twisted.web import client
from sslctx import makeSSLContext
url='https://www.test.ru/test/'
def printValue(value):
print ‘value: ’ + value
reactor.stop( )
def printError(error):
print ‘error’, error
reactor.stop()
mess=“%s?function=check”%(url)
ctx = makeSSLContext(myKey=client_key, trustedCA=caCert)
req=client.getPage(url,contextFactory=ctx,method='GET %s'%(mess))
req.addCallback(printValue)
req.addErrback(printError)
reactor.run()
задача в том, чтобы написать вспомогательный сервер, который бы получал некие данные от клиента, на основании которых
формировал запрос к серверу 'https://www.test.ru/test/', аналогичный приведенному выше, получал ответ и отправлял клиенту.
Бьюсь неделю, не могу понять, как мне с сервера отправить запрос и получить ответ. Т.е. данные от клиента я получаю, формирую mess,
дальше
req=client.getPage(url,contextFactory=ctx,method='GET %s'%(mess))
req.addCallback(printValue)
req.addErrback(printError)
а вот что дальше? Запрос не уходит. Реактор уже запущен в сервере. Что нужно сделать, чтобы отправить запрос ?
Отредактировано (Сен. 10, 2009 16:06:31)
Офлайн
А reactor.run точно был?
На взгляд все правильно.
Вспомогательный сервер - это twisted.web.server:Site?
Тогда нужно в render_GET ресурса возвращать server.NOT_DONE_YET, делать запрос к сайту и в callback заполнить request.
Офлайн
Что за бред:
req=client.getPage(url,contextFactory=ctx,method='GET %s'%(mess))
Почему такой вариант не устраивает:
req = client.getPage(url + ‘?function=check’, contextFactory = ctx)
method может быть только GET, POST, HEAD и тому подобное. Что касается SSL - не пользовал, может и здесь есть ошибки - не знаю.
..bw
Офлайн
Андрей СветловПолностью код привести нет возможности из-за объема.
А reactor.run точно был?
На взгляд все правильно.
Вспомогательный сервер - это twisted.web.server:Site?
Тогда нужно в render_GET ресурса возвращать server.NOT_DONE_YET, делать запрос к сайту и в callback заполнить request.
Офлайн
bwЭто требование протокола обмена с данным сервером - SSL, метод GET со строкой параметров.
Что за бред:
req=client.getPage(url,contextFactory=ctx,method='GET %s'%(mess))..bw
Офлайн