2017-11-19 7 views
2

を返しませんでした私は、基本的なツイスターアプリを持っていると私はそのようなエラーを得続ける:ツイスト - リクエストがバイト

リソース:

要求がバイト

リクエストを返しませんでした

< メイン。メインP 0x7f049fa62be0>

価値でageDispatcherオブジェクト:

「ハロー」どこでも

、でも公式ドキュメントの例では、私は、その文字列が私のために作品を返却し、まだされていない参照してください。最初の返信をコメントアウトし、文字列の代わりにバイトを送信すると、それは動作しています。 どのように動作するのか誰にでも分かりますか?それがバイトでなければならない場合、なぜ公式ガイドが文字列を返すのですか?

私のコード:のpython3で

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

は3問題にPythonのバージョン2を移植するように思えるUnicode文字列のバイト表現を返します。 Twistedはバイトを必要としますが、私は必要な情報を持っていないので答えとして入れませんが、誰かがサイマルの問題に遭遇した場合、常にバイトを返します(公式ドキュメントはPython 2であるかもしれないと仮定します)。 – Arrekin

答えて

0

私が使用している:

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')

関連する問題