代码之家  ›  专栏  ›  技术社区  ›  Brian Postow

我可以从python的请求库中获得原始请求的副本吗?

  •  0
  • Brian Postow  · 技术社区  · 11 月前

    请求正常工作的代码,使用requests_AWS4auth连接到AWS。

     from requests_aws4auth import AWS4Auth
     aws4auth = AWS4Auth(access_key, secret_key, 'us-east-1', 's3')
     response = requests.put(
        url,
        auth=aws4auth,
        data=content)
    

    我正试图让它在aiohttp和asyncio中工作。aiohttp只在本机处理用户/密码授权,所以我需要传递实际的头。

    我正试图从响应对象中获取标头,但很明显,它们不在其中。。。这些是响应的头。我想要请求的标题!

    如果我这样做:

        request = requests.Request("put",
                                   url,
                                   auth= aws4auth,
                                   data=content)
    

    它只是将aws4auth对象放在请求对象中,在headers字段中没有任何内容。

    我想知道通过电报发送的究竟是什么。这可能吗?

    2 回复  |  直到 11 月前
        1
  •  1
  •   Mitch Haile    11 月前

    你看了吗 response.request.headers ?

        2
  •  0
  •   C.Nivs    11 月前

    您可以使用 requests.Request(...).prepare() 要获取准备好的请求,并从中检查标头:

    import requests
    
    r = requests.Request('PUT', 'myurl.com:8000/my/route', json={'some': 'data'}, headers={'hello': 'world'})
    
    prepared = r.prepare()
    
    prepared.headers
    {'hello': 'world', 'Content-Length': '16', 'Content-Type': 'application/json'}