J'apprends Twisted en essayant de construire un agrégateur RSS. Lorsque je tente de construire des demandes à l'aide de l'agent Web, on me dit que je n'ai pas fourni l'argument url comme octets:Twisted Agent ne génère pas de requête à partir des octets
[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>]
Mais je pense que je l'ai fait:
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()
Est-il tordu noir magie qui se passe ici ou juste un mauvais encodage de moi?
Pouvez-vous modifier votre question et inclure les numéros de version Twisted et Python? Il y avait un problème avec 'Agent' et Python 3, mais je crois qu'il a été résolu il y a un moment. Néanmoins essayez de préfixer vos chaînes avec 'b' (si vous utilisez Python 3) – yorodm