python requests get方式怎么设置请求头?

 我来答
乌黑桃s
高粉答主

2018-01-09 · 醉心答题,欢迎关注
知道大有可为答主
回答量:356
采纳率:100%
帮助的人:9.8万
展开全部

Header可以通过Request提供的.add_header()方法进行添加,示例代码如下:

  • 123456789101112# -*- coding:utf-8 -*-

  • import urllib2import urlliburl = 'http://ah.example.com'half_url = u'/servlet/av/jd?

  • ai=782&ji=2624743&sn=I'#构造get请求req = urllib2.

  • Request(url+half_url.

  • encode('utf-8'))#添加headerreq.add_header('AcceptEncoding', 'gzip,deflate')req.

  • add_header('User-Agent','Mozilla/5.0')response = urllib2.

  • urlopen(req)

  • print response.

  • Requests支持流式上传,这允许你发送大的数据流或文件而无需先把它们读入内存。要使用流式上传,仅需为你的请求体提供一个类文件对象即可。

  • 读取文件请使用字节的方式,这样Requests会生成正确的Content-Length。

  • with open('massive-body', 'rb') as f:
    requests.post('http://some.url/streamed', data=f)

  • 分块传输编码

  • 对于出去和进来的请求,Requests也支持分块传输编码。要发送一个块编码的请求,仅需为你的请求体提供一个生成器

  • 注意生成器输出应该为bytes

  • def gen():

  • yield b'hi'

  • yield b'there'

  • requests.post('http://some.url/chunked', data=gen())

  • For chunked encoded responses, it's best to iterate over the data

  • using Response.iter_content(). In an ideal situation you'll have set stream=True on the

    request, in which case you can iterate chunk-by-chunk by calling iter_content with a chunk

    size parameter of None. If you want to set a maximum size of the chunk, you can set a chunk

    size parameter to any integer.

推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式