2010-08-15 3 views
5

Ich möchte es senden und es vergessen. Der http Rest Service Anruf, den ich mache, dauert ein paar Sekunden, um zu antworten. Das Ziel besteht darin, zu vermeiden, dass die wenigen Sekunden gewartet werden, bevor mehr Code ausgeführt werden kann. Ich würde lieber nicht Python-Threads verwenden Ich werde verdrehte Async-Aufrufe verwenden, wenn ich muss und die Antwort ignorieren.Wie kann ich eine HTTP-Anfrage machen, ohne eine HTTP-Antwort in Python zurückzubekommen?

Antwort

0

HTTP bedeutet eine Anfrage und eine Antwort für diese Anfrage. Gehen Sie mit einem asynchronen Ansatz vor.

1

Sie müssen das asynchron als HTTP-Protokoll implementieren, dass Sie eine Anfrage und eine Antwort haben.

Eine andere Option wäre, direkt mit dem Socket zu arbeiten und jedes vordefinierte Modul zu umgehen. Dies würde es Ihnen ermöglichen, das Protokoll zu verletzen und Ihr eigenes Bit zu schreiben, das alle Antworten ignoriert und im Wesentlichen die Verbindung löscht, nachdem sie die Anfrage gestellt hat.

0

Sie brauchen nicht verdreht dafür, nur urllib wird tun. Siehe http://pythonquirks.blogspot.com/2009/12/asynchronous-http-request.html

Ich bin Kopieren den entsprechenden Code hier aber der Kredit geht an diesem Link:

 
import urllib2 

class MyHandler(urllib2.HTTPHandler): 
    def http_response(self, req, response): 
     return response 

o = urllib2.build_opener(MyHandler()) 
o.open('http://www.google.com/') 
+3

Das funktioniert nicht; 'o.open()' blockiert immer noch, bis die Seite geladen ist. – rattray

Verwandte Themen