Python - 读取HTTP请求体

时间:2014-02-02 05:51:23

标签: javascript python http

我正在尝试使用HTTP将数据发送到我的Python服务器。

我的JavaScript代码:

xmlHttp = new XMLHttpRequest(); 
xmlHttp.open("POST", url, true);
xmlHttp.send(String.fromCharCode(0xf5));

我的Python代码:

#sock is a socket object
header = readline(sock)
contl = 0
while(len(header) > 0):
    header = readline(sock)
    dat = header.split(': ')
    if(len(dat) >= 2):
        if(dat[0] == 'Content-Length'):
            contl = int(float(dat[1]))
print sock.recv(contl)

readline函数:

def readLine(sock):
    s = ""
    while(True):
        a = sock.recv(1)
        if(len(a) < 1):
            return s
        elif(a == '\n'):
            return s
        elif(a == '\r'):
            b = sock.recv(1)
            if(b == '\n'):
                return s
            else:
                s += a + b
        else:
            s += a

而不是我的Python代码打印\xf5,它打印\xc3\xb5。有什么我想念的吗?

1 个答案:

答案 0 :(得分:2)

\xc3\xb5是U + 00F5的UTF-8表示

>>> u'\xf5'.encode('utf-8')
'\xc3\xb5'

您可以使用str.decode(Python 3.x中的bytes.decode)将其转换回来:

>>> b'\xc3\xb5'.decode('utf-8')
u'\xf5'