1_urllib2.HTTPError HTTP Error 500 INTERNAL SERVER ERROR

来源:互联网 发布:facebook 程序员薪资 编辑:程序博客网 时间:2024/05/29 18:17

问题描述

  • django + mysql + collect.py

使用collection.py脚本收集信息到入库的时候,urllib请求出错,但是数据是已经入库了的

Traceback (most recent call last):  File "collectRHEL.py", line 201, in <module>    req = urllib2.urlopen(url, url_encode)  File "/root/.pyenv/versions/2.7.11/lib/python2.7/urllib2.py", line 154, in urlopen    return opener.open(url, data, timeout)  File "/root/.pyenv/versions/2.7.11/lib/python2.7/urllib2.py", line 437, in open    response = meth(req, response)  File "/root/.pyenv/versions/2.7.11/lib/python2.7/urllib2.py", line 550, in http_response    'http', request, response, code, msg, hdrs)  File "/root/.pyenv/versions/2.7.11/lib/python2.7/urllib2.py", line 475, in error    return self._call_chain(*args)  File "/root/.pyenv/versions/2.7.11/lib/python2.7/urllib2.py", line 409, in _call_chain    result = func(*args)  File "/root/.pyenv/versions/2.7.11/lib/python2.7/urllib2.py", line 558, in http_error_default    raise HTTPError(req.get_full_url(), code, msg, hdrs, fp)urllib2.HTTPError: HTTP Error 500: INTERNAL SERVER ERROR

解决思路,测试方法

  • 先清空库中的数据,修改ORM某个字段,让其长度小于要插入数据的长度,这样一定会出错,然后分别以urllib, urllib2来请求
  • 和上次测试一样,但是这次给到足够长的长度,再以urllib, urllib2来分别测试

测试结果

  • 无论是urllib, urllib2都会出错
  • 无论使用那个模块,都不会出问题

结论

1、确定ORM模型中数据库字段的长度

2、其实使用urllib.urlopen()或者是urllib2.urlopen()关系并不大

原创粉丝点击