Traceback lorsque j'utilise urllib2, obtenez une erreur HTTP 500
Mon code est comme suit, mais lorsqu'il s'exécute, il renvoie une erreur.
search_request = urllib2.Request(url,data=tmp_file_name,headers={'X-Requested-With':'WoMenShi888XMLHttpRequestWin'})
#print search_request.get_method()
search_response = urllib2.urlopen(search_request)
html_data = search_response.read()
l'erreur est:
Traceback (most recent call last):
File "xx_tmp.py", line 83, in <module>
print hello_lfi()
File "xx_tmp.py", line 69, in hello_lfi
search_response = urllib2.urlopen(search_request)
File "D:\Python27\lib\urllib2.py", line 126, in urlopen
return _opener.open(url, data, timeout)
File "D:\Python27\lib\urllib2.py", line 406, in open
response = meth(req, response)
File "D:\Python27\lib\urllib2.py", line 519, in http_response
'http', request, response, code, msg, hdrs)
File "D:\Python27\lib\urllib2.py", line 444, in error
return self._call_chain(*args)
File "D:\Python27\lib\urllib2.py", line 378, in _call_chain
result = func(*args)
File "D:\Python27\lib\urllib2.py", line 527, in http_error_defau
raise HTTPError(req.get_full_url(), code, msg, hdrs, fp)
urllib2.HTTPError: HTTP Error 500: Internal Server Error
Je ne sais pas comment résoudre ce problème? Je veux dire, quand une erreur qui s'est passé, comment mon code de continuer à travailler?
lorsque j'essaie d'utiliser
try:
search_response = urllib2.urlopen(search_request)
except urllib2.HTTPError:
pass
nouvelle erreur
UnboundLocalError: local variable 'search_response' referenced before assignment
- je utiliser
global search_response
et d'avoir d'erreur
NameError: global name 'search_response' is not defined
- Le serveur n'a pas, comme à votre demande, ce n'est pas un python problème.
- C'est le problème avec le Serveur d'envoi de la demande et non pas avec
urllib2
essayer une autre url. - Vous pouvez intercepter l'exception mais qui ne vous donnera pas toute l'information utile à partir du serveur.
- ouais,j'connaître c'est un problème de serveur,je veux dire, c'est quand cette erreur qui s'est passé,comment le programme peut-il aller sur le travail
- Ne pas modifier la question à se poser quelque chose de complètement différent; poser une nouvelle question.
Vous devez vous connecter pour publier un commentaire.
Vous pouvez intercepter l'exception, cela permettra d'éviter votre programme à partir de l'arrêt de sorte 'brusquement':
Si vous voulez continuer, vous pouvez tout simplement:
Cela permettra à votre programme de continuer; mais votre déclaration d'autres
html_data = search_response.read()
ne vous donnera pas le résultat escompté. Pour résoudre ce problème de façon permanente, vous avez besoin de déboguer votre demande à voir pourquoi sa faute; ce n'est pas quelque chose de spécifique à Python.J'ai eu le même message d'erreur quand je tente d'envoyer un gros poste demande à mon GAE Python serveur. Il s'avère que le serveur a l'erreur car j'étais en train d'écrire le reçu de POST-chaîne dans une db.StringProperty(). J'ai changé de db.TextProperty() et il n'a pas lancer l'erreur plus.
Source: Surmonter appengine 500 octets de la chaîne de limite en python? envisager de texte