在Python中使用请求的状态500
因此,我正在努力将图像发送到url。我计划使用Python发出POST请求。 我的代码如下所示:在Python中使用请求的状态500,python,python-requests,http-status-code-500,Python,Python Requests,Http Status Code 500,因此,我正在努力将图像发送到url。我计划使用Python发出POST请求。 我的代码如下所示: import requests headers = {'User-Agent': 'Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/54.0.2840.90 Safari/537.36'} response = requests.request('POST', url, headers=h
import requests
headers = {'User-Agent': 'Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/54.0.2840.90 Safari/537.36'}
response = requests.request('POST', url, headers=headers, files={'file':open('1-watermarked-page.PNG', 'rb')})
print (response.status_code)
当我运行这个时,我得到的状态代码是500。
我试图将“files”参数替换为“data”,但它给出的错误为413:
导入请求
headers = {'User-Agent': 'Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/54.0.2840.90 Safari/537.36'}
response = requests.request('POST', url, headers=headers, data={'file':open('1-watermarked-page.PNG', 'rb')})
print (response.status_code)
谁能告诉我哪里出了错
谢谢 问题是,我们必须以JSON格式将数据发送到post请求,但我们将其作为字典发送,这会使请求成为错误的请求。因此,我所知道的最好的方法是将数据转换为JSON格式(这可能是因为解析发生在服务器端)
这对我有效,如果对您有效,请告诉我服务器有问题,请稍后再试。对于413,您的文件比服务器预期的要大,您可能应该使用它。但是是的413意味着文件太多了big@abccd,我的意思是,当我将“files”参数更改为“data”参数时,保持一切不变,状态代码从500更改为413。@MarkusMeskanen,我尝试使用requests.post(),它显示了相同的行为。状态代码500是服务器错误,而不是您的错误。你确定URL是可邮寄的吗?你在浏览器上也试过吗?服务器是否返回带有500状态代码的文本?
import json
data = data={'file':open('1-watermarked-page.PNG', 'rb')}
response = request.post("url",json.dumps(data))
# json.dumps(data) converts data to json format