我想在Python中提交一个多部分POST请求。我环顾四周,发现2个版本:用python请求和urllib2解释POST多部分请求
- 使用 'reqests'(http://docs.python-requests.org/en/latest/)
- 使用的urllib2(https://docs.python.org/2/library/urllib2.html#module-urllib2)
我想他们都和我能够成功提交申请。 下面是两个示例代码:
---------- --------------请求
resp = requests.post(submiturl, files=multipart_form_data, headers=headers,timeout=5)
其中multipart_form_data包含我的文件对象以及字符串参数
--------------- ------------的urllib2
items.append(MultipartParam(name, value)) fileObj = open(inputFile,'r') items.append(MultipartParam('file', filename=inputFile, fileobj=fileObj)) res = urllib2.urlopen(request)
我的问题:
- 一个我应该使用哪一种?
纠正我,如果我错了,但我已经看到,同时提交与urllib2我得到HTTPError响应代码,如500。然而,,而使用“请求”不抛出HTTPError像500级的响应代码,而不是我必须手动添加条件:
Response.raise_for_status():
或:
resp.status_code != 200: raise Execption(...)
这是正确的还是我错过了什么?
谢谢!
这是一个基于意见的问题,但**请求**是最常用的Python库之一。 * raise_for_status *事物让你有机会检查HTTP响应,并在适当的时候重试,通常是这样。 – cbare
@cbare。 'Response.raise_for_status()'会引发状态码200以外的错误吗?另外,你能确认urllib2会在200以外的所有场景中抛出HTTPError吗?如果是这样的话,那么我可以使用urllib2,而不是使用“请求”,并添加Response.raise_for_status() – Dadu