2017-11-19 15 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 문제에 파이썬 버전 2를 이식하는 것 같다 유니 코드 문자열의 바이트 표현을 반환합니다. Twisted는 바이트를 필요로하지만 필자는 필요한 정보가 없기 때문에 대답을 넣지 않을 것입니다.하지만 누군가 silimar 문제가 발생하면 항상 바이트를 반환합니다 (그리고 공식 문서는 파이썬 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')