urllib.urlopen не будет выполняться в потоке - PullRequest
1 голос
/ 22 января 2011

Я работаю с темами, и мне нужно скачать сайт с темой.У меня также есть ветка, которая отправляет петицию на сайт, но не ждет ответа.Тот, который не ждет, выглядит так:

class peticion(Thread):
    def __init__(self, url):
        Thread.__init__(self)
        self.url = url

    def run(self):
        f = urllib.urlopen(self.url)
        f.close()

Этот работает правильно, однако для того, чтобы ждать ответа, требуется нечто вроде случайного времени, от 5 секунд до 2 минутили это может никогда не закончиться.Это класс:

class playerConn(Thread):
    def __init__(self, ev):
        Thread.__init__(self)
        self.ev = ev

    def run(self):
        try:
            params = urllib.urlencode('''params go here''')
            f = urllib.urlopen('''site goes here''')
            resp = f.read()
            f.close()
        finally:
            # do something with the response

Если я использую оператор try ... finally, он не работает, код после функции urlopen не будет выполнен.

Что я могу сделать?

1 Ответ

0 голосов
/ 25 января 2011

Кажется, что это просто проблема с URL, код в порядке, и он, похоже, не делает что-то не так. Могу поспорить, у вас есть какой-то тип проблемы с сайта, может быть, 404 или аналогичный. Попробуйте открыть что-нибудь в localhost, просто чтобы проверить.

...