Ich lerne Twisted, indem ich versuche, einen RSS agregator zu bauen. Wenn ich versuche, Anfragen zu bauen, die Web-Agenten verwenden, bin ich gesagt, dass ich nicht die URL Argument als Bytes vorsah:Twisted Agent wird keine Anfrage aus Bytes erstellen
[Failure instance: Traceback (failure with no frames): <class 'twisted.web._newclient.RequestGenerationFailed'>: [<twisted.python.failure.Failure builtins.TypeError: sequence item 0: expected a bytes-like object, str found>]
Aber ich glaube, ich habe:
from twisted.internet import reactor
from twisted.web.client import Agent
def request_sent(response):
print ('I got something!')
def request_failed(reason):
print (reason)
def feed_loader_main():
"""
Starts and manage the reactor
"""
agent = Agent(reactor)
d = agent.request(
'GET',
'http://www.example.com'.encode('utf8') ##### <- HERE
)
d.addCallback(request_sent)
d.addErrback(request_failed)
print ('Firing reactor!')
reactor.run()
if __name__ == '__main__':
feed_loader_main()
Ist es Twisted-schwarz Magie geht hier vor oder nur schlechte Kodierung von mir?
Können Sie Ihre Frage bearbeiten und Twisted- und Python-Versionsnummern hinzufügen? Es gibt ein Problem mit "Agent" und Python 3, aber ich glaube, dass es vor einiger Zeit gelöst wurde. Versuchen Sie trotzdem, Ihre Strings mit 'b' zu versehen (wenn Sie Python 3 verwenden) – yorodm