【发布时间】:2018-01-11 02:18:17
【问题描述】:
我尝试将图像上传到 python Flask API。 Flask 代码基于以下 sn-ps 和教程:
我已经尝试过关于这个主题的 stackoverflow 上提供的不同解决方案,但它们都无法解决问题。
我的烧瓶代码
@app.route("/rupload/<filename>", methods=['POST', 'PUT'])
def rupload(filename):
# Sanity checks and setup skipped.
filename = secure_filename(filename)
fileFullPath = os.path.join(UPLOAD_FOLDER, filename)
with open(fileFullPath, 'wb') as f:
f.write(request.get_data())
return jsonify({
'filename': filename,
'size': os.path.getsize(fileFullPath)
})
脚本
文件 test.jpg 与此脚本位于同一文件夹中。我尝试使用 python 代码复制curl -v -H 'Content-Type: application/octet-stream' -X POST --data @test.jpg localhost:5000/rupload/test.jpg 的效果,因为我不想使用 curl。
url='localhost:5000/rupload/test'
headers={'Content-Type':'application/octet-stream'}
requests.post(url,headers=headers,data='file.jpg')
运行此脚本时(Flask 应用程序也在运行)它会抛出以下错误:
Traceback (most recent call last):
File "<path to my script.py>", line 10, in <module>
requests.post(url,headers=headers,data='file.jpg')
File "C:\Program Files\Python35\lib\site-packages\requests\api.py", line 112, in post
return request('post', url, data=data, json=json, **kwargs)
File "C:\Program Files\Python35\lib\site-packages\requests\api.py", line 58, in request
return session.request(method=method, url=url, **kwargs)
File "C:\Program Files\Python35\lib\site-packages\requests\sessions.py", line 508, in request
resp = self.send(prep, **send_kwargs)
File "C:\Program Files\Python35\lib\site-packages\requests\sessions.py", line 612, in send
adapter = self.get_adapter(url=request.url)
File "C:\Program Files\Python35\lib\site-packages\requests\sessions.py", line 703, in get_adapter
raise InvalidSchema("No connection adapters were found for '%s'" % url)
requests.exceptions.InvalidSchema: No connection adapters were found for 'localhost:5000/rupload/test'
我不太确定如何解决这个问题。到目前为止我尝试的所有方法都不起作用。 我猜API工作正常(它没有识别请求也没有抛出错误)并且错误完全是由脚本引起的。 API 的所有其他部分(此处未显示)正常工作。如果有人能指出如何解决这个问题的方向,那就太好了。
谢谢
【问题讨论】: