我正在尝试在Python中提交多部分POST请求。我环顾四周,找到了两个变种:
我尝试了他们两个并且能够成功提交请求。 以下是两者的示例代码:
---------- --------------请求
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 。但是,使用"请求"它不会像500 那样抛出响应代码的HTTPError,而是我必须手动添加条件:
Response.raise_for_status():
或:
resp.status_code != 200: raise Execption(...)
这是正确的还是我遗失了什么?
谢谢!
答案 0 :(得分:0)
Response.raise_for_status()引发4xx和5xx范围内的HTTP响应代码。 src非常清晰易读。
您可以获得成功请求的2xx响应,但您可能还需要考虑其他响应代码,例如重定向。