Python 如何更改请求头
如何设置请求头?我正在从instagram下载图像,我想更改其文件名,获取文件大小。有这么多请求头 这就是我到目前为止所做的Python 如何更改请求头,python,flask,python-requests,Python,Flask,Python Requests,如何设置请求头?我正在从instagram下载图像,我想更改其文件名,获取文件大小。有这么多请求头 这就是我到目前为止所做的 import requests @app.route('/try') def trial(): img = 'https://igcdn-photos-e-a.akamaihd.net//hphotos-ak-xaf1//t51.2885-15//e35//12093691_1082288621781484_1524190206_n.jpg' img
import requests
@app.route('/try')
def trial():
img = 'https://igcdn-photos-e-a.akamaihd.net//hphotos-ak-xaf1//t51.2885-15//e35//12093691_1082288621781484_1524190206_n.jpg'
imgData = requests.get(img)
return imgData # this gives me error: Response object is not callable
编辑:我想设置内容处置标题。另一个问题:当我设置标题时,如何将图像提供给客户端
我在互联网上读到,要将文件发送到客户端,我应该设置请求头。但是如何发送文件是我的另一个问题?很抱歉在同一个中问了另一个问题。您所问的问题与Flask无关。Flask是一个web框架。请求是一个HTTP库,它将帮助解决您的问题 您只需要使用头创建一个dict(key:value对,其中key是头的名称,value是对的值),然后将该dict传递给
.get
或或方法上的headers参数
headers = {'Content-Type': 'text/plain'}
r = requests.get('http://example.com', headers=headers)
如果希望检查发送请求时设置的标头值,则可以执行以下操作:
print r.headers
print r.headers['Content-Type'] # Output - 'text/html'
你会得到这样的回答
{'content-length': '73921', 'last-modified': 'Fri, 30 Oct 2015 15:18:29 GMT', 'connection': 'keep-alive', 'cache-control': 'max-age=1209600', 'date': 'Wed, 18 Nov 2015 08:44:15 GMT', 'access-control-allow-origin': '*', 'content-type': 'image/jpeg', 'timing-allow-origin': '*'}
你可以得到标题。。。查看内容长度
。我相信你不会得到这个文件名,因为内容配置
不在那里。因此,请尝试其他方法获取文件名。请注意,请求头不会告诉您任何有关响应文件大小或文件名的信息。@MartijnPieters-您是对的。OP的问题不清楚。但请检查问题的编辑。特别是最后一行,很明显。。。他想要的是文件名
和文件大小
,根据我的回答,编辑成这样…谢谢你的即时回复。我可以设置内容处置
标题吗?@sap我想我们不能。。。因为它是instagram的maybe@sap但是你可以得到文件名。。它在URL中。。。对吗?请您签出已编辑的问题。我想将文件发送到客户端,那么是否可以这样做?我该怎么走further@sap我不太清楚。。首先,你从instagram获得了文件。现在你想把它送到哪里?你需要在你的问题上更清楚;您的示例代码缺少Flask请求处理程序(@app.route()
decorator加上相应的函数)。请完整描述您的问题:我正在尝试使用请求下载一个图像,然后使用Flask提供它,然后包括一个演示您所取得进展的最小Flask应用程序。
{'content-length': '73921', 'last-modified': 'Fri, 30 Oct 2015 15:18:29 GMT', 'connection': 'keep-alive', 'cache-control': 'max-age=1209600', 'date': 'Wed, 18 Nov 2015 08:44:15 GMT', 'access-control-allow-origin': '*', 'content-type': 'image/jpeg', 'timing-allow-origin': '*'}