2017-11-19 9 views
2

I Grund Twister App haben, und ich erhalte immer Fehler wie folgt aus:Verdreht - Antrag kam nicht zurück Bytes

Anfrage Rückkehr Bytes nicht

Anfrage:

Ressource:

< Haupt .MainP ageDispatcher Objekt bei 0x7f049fa62be0>

Wert:

'Hallo'

überall, auch in offiziellen Dokumenten Beispiele sehe ich, dass String zurückgegeben und es noch nicht funktioniert für mich. Wenn ich die erste Rückgabe auskommentiere und Bytes anstelle von String sende, funktioniert es. Kann mir jemand helfen zu verstehen, wie es funktioniert? Wenn es in Bytes sein muss, warum geben offizielle Guides Strings zurück?

Mein Code:

from twisted.web.server import Site 
from twisted.web.static import File 
from twisted.web.resource import Resource 
from twisted.internet import reactor 

class MainPageDispatcher(Resource): 
    isLeaf = True 
    def __init__(self): 
     super().__init__() 

    def render_GET(self, request): 
     request.setHeader(b"content-type", b"text/html") 
     return "hello" 
     return bytes("hello", "utf-8") 

root = MainPageDispatcher() 
factory = Site(root) 
reactor.listenTCP(8888, factory) 
reactor.run() 
+0

Scheint, wie Python zu portieren Version 2 bis 3 Problem. Twisted benötige Bytes, ich werde das nicht als Antwort verwenden, da ich keine notwendigen Informationen habe, aber wenn jemand silimar Probleme findet, gebe immer nur Bytes zurück (und nehme an, dass offizielle Dokumente in Python 2 sein könnten). – Arrekin

Antwort

0

In python3 Ich verwende:

def render_GET(self, request): 
    request.setHeader("Content-Type", "text/html; charset=utf-8") 
    return "<html>Hello, world!</html>".encode('utf-8') 

str.encode('utf-8') gibt eine Byte-Darstellung des Strings Unicode

Verwandte Themen