小编use*_*244的帖子

我应该如何将 HTTP 标头从字节解码为字符串?

基本上,我正在尝试从头开始用 python 创建一个小型网络服务器(只是为了学习),但我在解码标头时遇到了问题。代码归结为以下内容(我已将其简化为仅与问题相关的代码):

import socket

sock = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
sock.bind(('', 80))
sock.listen(1)

while True:
    conn, addr = sock.accept()

    print(addr[0])
    request = conn.recv(2048).decode('utf-8')

    headers = (
        'HTTP/1.0 200 OK',
        'Content-Type: text/html'
    )

    content = 'success'

    response = "\n".join(headers) + "\r\n\r\n" + content

    conn.sendall(bytes(response, 'UTF-8'))

    conn.close()
Run Code Online (Sandbox Code Playgroud)

我安装了 Firefox 的插件 HttpRequester 来摆弄我当前的内容并尝试附加文件,这导致了以下错误:

UnicodeDecodeError: 'utf-8' codec can't decode byte 0x90 in position 386: invalid start byte

我该如何解决这个问题?我应该将其包装在 try: 中并忽略导致此类异常的请求吗?

python header http

2
推荐指数
1
解决办法
3570
查看次数

标签 统计

header ×1

http ×1

python ×1