2013-09-22 11 views
10

Stava facendo una nuova installazione della mia scatola vagabonda e del mio ambiente di sviluppo e quando provo a eseguire il mio progetto django ottengo il seguente errore. Qualche idea che sta succedendo?strano UnicodeDecodeError su django

---------------------------------------- 
[21/Sep/2013 23:44:03] code 400, message Bad HTTP/0.9 request type ('\x16\x03\x00\x00E\x01\x00\x00A\x03\x00R>u\xa6\x00`b\xceZ\xc8\xe6H2\x85') 
---------------------------------------- 
Exception happened during processing of request from ('10.0.2.2', 60969) 
Traceback (most recent call last): 
    File "/usr/lib/python2.7/SocketServer.py", line 582, in process_request_thread 
    self.finish_request(request, client_address) 
    File "/usr/lib/python2.7/SocketServer.py", line 323, in finish_request 
    self.RequestHandlerClass(request, client_address, self) 
    File "/home/vagrant/hypnos-venv/local/lib/python2.7/site-packages/django/core/servers/basehttp.py", line 150, in __init__ 
    super(WSGIRequestHandler, self).__init__(*args, **kwargs) 
    File "/usr/lib/python2.7/SocketServer.py", line 638, in __init__ 
    self.handle() 
    File "/usr/lib/python2.7/wsgiref/simple_server.py", line 117, in handle 
    if not self.parse_request(): # An error code has been sent, just exit 
    File "/usr/lib/python2.7/BaseHTTPServer.py", line 281, in parse_request 
    "Bad HTTP/0.9 request type (%r)" % command) 
    File "/usr/lib/python2.7/BaseHTTPServer.py", line 368, in send_error 
    self.send_response(code, message) 
    File "/usr/lib/python2.7/BaseHTTPServer.py", line 385, in send_response 
    self.log_request(code) 
    File "/usr/lib/python2.7/BaseHTTPServer.py", line 422, in log_request 
    self.requestline, str(code), str(size)) 
    File "/home/vagrant/hypnos-venv/local/lib/python2.7/site-packages/django/core/servers/basehttp.py", line 162, in log_message 
    msg = "[%s] %s\n" % (self.log_date_time_string(), format % args) 
UnicodeDecodeError: 'ascii' codec can't decode byte 0xa6 in position 15: ordinal not in range(128) 
+0

Cosa hai digitato nel browser per innescare l'errore? –

+0

Solo localhost: 8888 – jzkelter

+0

Apparentemente se lo faccio 127.0.0.1:8888 funziona bene. Non so perché però. – jzkelter

risposta

2

Dalla traccia dello stack sembra server di sviluppo Django tenta di accedere una richiesta e non riesce a causa di richiesta non è valido.

Si scopre che BaseHTTerver registra semplicemente la prima riga della richiesta HTTP non elaborata, quindi se il browser invia il cestino nella richiesta (chissà perché), il server di sviluppo potrebbe non riuscire a registrarlo. Suggerirei di utilizzare una console di sviluppo o Firebug per controllare le intestazioni delle richieste inviate dal browser. Se questo è il caso, l'intera situazione è più un problema dell'ambiente di test.

4

Stai provando questo con https?

Ho avuto lo stesso problema e alla fine ho capito che dovrebbe essere con http (no s) durante lo sviluppo. https crittografa la tua richiesta, il che è un mucchio di parole senza senso per quanto riguarda il server di sviluppo.

27

Sembra che si è tentato di colpire http sito web con https

+1

Sono sicuro che si tratta di un errore molto comune con un messaggio di errore non ovvio. Mi ha salvato da me stesso dopo 3-4 ore di sconcertante codifica. –

+0

Wow, così inaspettata questa risposta, ma per me corretta al 100%. Grazie uomo! – gabn88