Python请求 - 在标头和获取请求中使用变量

时间:2017-09-15 15:10:27

标签: python-2.7 python-requests

我有两个必须注入PUT的变量(curl -XPOST等效)

  • Variable1(标题)
  • Variable2(网址的一部分)

    headers = {'Authorization': 'Bearer Variable1',
    }
    
    files = [
    ('server', '*'),
    ]
    
    requests.get('https://URL/1/2/3/4/5/Variable2', headers=headers, files=files, verify=False)
    

我遇到了两个问题:

  1. 将变量包含在请求中的正确方法是什么
  2. 由于这是通过HTTPS运行的,如何验证请求中实际包含的内容?我想为调试目的验证这一点

1 个答案:

答案 0 :(得分:2)

  
      
  1. 将变量包含在请求中的正确方法是什么
  2.   

将标题字典作为headers参数传递,就像你编写的那样,很好。对于你的url字符串,我只是join()你的Variable2的基本URL,并将其作为参数传递。

以下是我编写此代码的方法:

import requests

base_url = 'https://URL/1/2/3/4/5/'
url = ''.join([base_url, Variable2])

headers = {'Authorization': 'Bearer Variable1',}
files = [('server', '*'),]

resp = requests.put(url, headers=headers, files=files, verify=False)
  
      
  1. 由于这是通过HTTPS运行的,如何验证请求中实际包含的内容?我想验证这个用于调试目的
  2.   

您可以使用PreparedRequest对象:

from requests import Request, Session

r = Request('PUT', url, headers=headers, files=files)
prepped = r.prepare()

# now, for example, you can print out the url, headers, method...
# whatever you need to validate in your request.
# for example:
# print prepped.url, prepped.headers

# you can also send the request like this...

s = Session()
resp = s.send(prepped)