广告位联系
返回顶部
分享到

Python实现打印http请求信息

python 来源:互联网 作者:佚名 发布时间:2024-06-28 21:40:03 人浏览
摘要

问题 我们在开发过程中,为了快速验证接口, 经常采用postman或者Python代码先行验证的方式,确保接口正常, 在测试接口过程中偶尔会遇到接口异常,这时候要和打印完整的http请求, 帮助接

问题

我们在开发过程中,为了快速验证接口,

经常采用postman或者Python代码先行验证的方式,确保接口正常,

在测试接口过程中偶尔会遇到接口异常,这时候要和打印完整的http请求,

帮助接口开发人员确认问题;

方法

仅仅是打印出这些信息,很简单:

1

2

3

4

import requests

response = requests.post('http://httpbin.org/post', data={'key1':'value1'})

print(response.request.headers)

print(response.request.body)

或者:

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

import requests

 

def pretty_print_POST(req):

    print('{}\n{}\r\n{}\r\n\r\n{}'.format(

        '-----------START-----------',

        req.method + ' ' + req.url,

        '\r\n'.join('{}: {}'.format(k, v) for k, v in req.headers.items()),

        req.body,

    ))

 

req = requests.Request('POST','http://stackoverflow.com',headers={'X-Custom':'Test'},data='a=1&b=2')

prepared = req.prepare()

pretty_print_POST(prepared)

 

s = requests.Session()

resp = s.send(prepared)

print(resp.text)

但如果你想要在进行请求之前对http头和数据进行操作,也是使用prepare:

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

from requests import Request, Session

 

s = Session()

 

req = Request('POST', url, data=data, headers=headers)

prepped = req.prepare()

 

# do something with prepped.body

prepped.body = 'No, I want exactly this as the body.'

 

# do something with prepped.headers

del prepped.headers['Content-Type']

 

resp = s.send(prepped,

    stream=stream,

    verify=verify,

    proxies=proxies,

    cert=cert,

    timeout=timeout

)

 

print(resp.status_code)

python 的库的用法去对应的库的帮助文档里去找,更为方便些;

  • Python requests - print entire http request (raw)?

版权声明 : 本文内容来源于互联网或用户自行发布贡献,该文观点仅代表原作者本人。本站仅提供信息存储空间服务和不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权, 违法违规的内容, 请发送邮件至2530232025#qq.cn(#换@)举报,一经查实,本站将立刻删除。
原文链接 :
相关文章
  • 本站所有内容来源于互联网或用户自行发布,本站仅提供信息存储空间服务,不拥有版权,不承担法律责任。如有侵犯您的权益,请您联系站长处理!
  • Copyright © 2017-2022 F11.CN All Rights Reserved. F11站长开发者网 版权所有 | 苏ICP备2022031554号-1 | 51LA统计