J'essaie de créer un script de requête POST en Python qui enverra automatiquement des données à la base de données. Puisque mon application web (faite en Django) est toujours en cours (sur localhost) j'ai essayé d'envoyer cette requête POST depuis un autre ordinateur sur le même réseau via IPv4: port.Erreur HTTP 500: erreur de serveur interne
Tout en faisant cela, j'obtiens l'erreur HTTP 500: Erreur interne du serveur avec retraçage à la ligne « réponse = urllib2.urlopen (REQ) » Mon script ressemble à ceci:
import urllib, urllib2, cookielib
import re
cookie_jar = cookielib.CookieJar()
opener = urllib2.build_opener(urllib2.HTTPCookieProcessor(cookie_jar))
urllib2.install_opener(opener)
url_1 = 'http://192.168.1.104:8000/legacy'
req = urllib2.Request(url_1)
rsp = urllib2.urlopen(req)
url_2 = 'http://192.168.1.104:8000/legacy'
params = {
'temperature_max' : '186',
'temperature_min' : '88',
'submit': 'Submit',
}
data = urllib.urlencode(params)
req = urllib2.Request(url_2, data)
response = urllib2.urlopen(req)
the_page = response.read()
pat = re.compile('Title:.*')
print pat.search(the_page).group()
Sur l'autre ordinateur hébergeant le serveur je reçois l'erreur suivante:
Exception happened during processing of request from ('192.168.1.65', 56996)
Traceback (most recent call last):
File "c:\python27\Lib\SocketServer.py", line 599, in process_request_thread
self.finish_request(request, client_address)
File "c:\python27\Lib\SocketServer.py", line 334, in finish_request
self.RequestHandlerClass(request, client_address, self)
File "C:\Users\Alex\Envs\rango\lib\site-packages\django\core\servers\basehttp.
py", line 129, in __init__
super(WSGIRequestHandler, self).__init__(*args, **kwargs)
File "c:\python27\Lib\SocketServer.py", line 657, in __init__
self.finish()
File "c:\python27\Lib\SocketServer.py", line 716, in finish
self.wfile.close()
File "c:\python27\Lib\socket.py", line 283, in close
self.flush()
File "c:\python27\Lib\socket.py", line 307, in flush
self._sock.sendall(view[write_offset:write_offset+buffer_size])
error: [Errno 10054] An existing connection was forcibly closed by the remote host
EDIT: Je voudrais vous faire savoir que je peux publier des données de l'autre ordinateur à ma base de données si je me connecte à mon application avec mon navigateur.
D'où vient le jeton CSRF? Êtes-vous sûr que c'est valide? – jsfan
Depuis mon application web, je suis allé à la page où je veux insérer des données, cliqué sur "voir la source" et il était là en forme. – narn
Ce jeton est probablement lié à une session. Cependant, vous ne copiez pas le cookie de session qui le rendrait invalide. – jsfan