Python 大文件作为POST请求?

Python 大文件作为POST请求?,python,python-requests,Python,Python Requests,我正在开发一个程序,将图像编码为base64字符串,然后将这些字符串作为POST请求的参数提交给API服务器。它适用于1kb以下的非常小的图像,但当我尝试使用54kb的测试图像时,它失败了。我只是没有收到API服务器的响应。我知道这是可能的,因为其他开发人员已经让它工作,但我不确定我做错了什么。以下是相关章节的代码: dlimage = requests.get(imageURL, stream=True, timeout=10) encodedImage = base64.encodestri

我正在开发一个程序,将图像编码为base64字符串,然后将这些字符串作为POST请求的参数提交给API服务器。它适用于1kb以下的非常小的图像,但当我尝试使用54kb的测试图像时,它失败了。我只是没有收到API服务器的响应。我知道这是可能的,因为其他开发人员已经让它工作,但我不确定我做错了什么。以下是相关章节的代码:

dlimage = requests.get(imageURL, stream=True, timeout=10)
encodedImage = base64.encodestring(dlimage.content)
imagequery = {"request":"saveProductPicture","sessionKey":sessionKey,"clientCode":clientCode,"productID":productID,"picture":encodedImage}
response = requests.request("POST", url, params=imagequery, stream=True, timeout=10)

您没有提到正在使用的web服务器,但很可能是服务器对请求大小施加了限制

如果您使用的是Apache,请参阅

有关nginx,请参阅

有关lighttpd,请参阅

我找不到unicorn dev服务器的设置


在任何情况下,如果遇到问题,请检查服务器日志文件。PythonWeb框架中可能也有一个设置,但您没有指定使用哪个设置。根据我的经验,通常是外部web服务器施加了限制。

我解决了我的问题。使用params本质上强制将请求作为GET处理。对于POST请求,应该使用数据而不是参数。

您的文本显示POST,但代码显示GET。你到底在用什么方法?我错了。更正代码。