2014-02-02 3 views
1

Я пытаюсь отправить данные на свой сервер Python с помощью HTTP.Python - Чтение тела запроса HTTP

код My 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. Есть что-то, что мне не хватает?

+0

Какова ваша функция Readline делает. Можете ли вы опубликовать код метода? –

+0

@LearningNeverStops Хорошо, опубликовано – user2555349

ответ

2

\xc3\xb5 является UTF-8 представление U + 00F5

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

Вы можете скрытые его обратно, используя str.decode (bytes.decode в Python 3.x):

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

Спасибо, это работает! – user2555349

Смежные вопросы