我在Flask中编写了RESTful API,并使用Kenneth Reitz requests项目提出请求。对于特定的路由,我想发布二进制数据以及一些额外的头来描述数据。 REST API查看POST的标头,如果这些标头值存在问题,则返回412状态代码以及一些JSON内容来描述问题。
如果数据内容超过特定大小,我遇到的问题是JSON内容不会通过请求返回。
# This works
>>> r=requests.post(url, headers=headers, allow_redirects=False, data=data[:3400])
>>> r.status_code
412
>>> r.content
'{\n "code": 412, \n "context": "Header xyz is invalid", \n "message": "RESOURCE_INVALID"\n}
# The request content disappears here, same data, same url, same headers
>>> r=requests.post(url, headers=headers, allow_redirects=False, data=data[:3500])
>>> r.status_code
412
>>> r.content
''
我通过Flask的内容跟踪了这个请求,构建的响应看起来很好,它有JSON内容,所以我相信这个问题存在于请求的内容中但是还没有能够准确地追踪哪里。
在向RESTful API发布大量数据时有没有人看到过这个特殊问题?