Python请求HTTP POST响应cookie缺少/隐藏字段

Python请求HTTP POST响应cookie缺少/隐藏字段,python,http,python-requests,Python,Http,Python Requests,刚开始使用Python请求库,正在寻找有关访问Cookie的帮助 我无法访问cookie中的所有字段,这些字段是我使用请求库从以下代码中获得的——GoLang或Postman的类似代码都可以正常工作,但由于某种原因,我缺少了Python land中需要的几个关键字段。示例代码如下所示: import requests # Host base URL host = 'sampleurl.link/endpoint' # Username and password for login to API

刚开始使用Python请求库,正在寻找有关访问Cookie的帮助

我无法访问cookie中的所有字段,这些字段是我使用请求库从以下代码中获得的——GoLang或Postman的类似代码都可以正常工作,但由于某种原因,我缺少了Python land中需要的几个关键字段。示例代码如下所示:

import requests

# Host base URL
host = 'sampleurl.link/endpoint'
# Username and password for login to API endpoint
credentials = "username=sausage123%40spaniel.org&password=Passw0rd"

ses = requests.Session()

authString = ''

def auth(host):
    payload = credentials
    headers = {
            'Content-Type': "application/x-www-form-urlencoded",
        }

    ses.post("https://" + host + "/auth", data=payload, headers=headers)

    cookies = ses.cookies.get_dict()
    print(cookies.items())
    authString = "; ".join([str(x)+"="+str(y) for x,y in cookies.items()])
    print(authString)

auth(host)
[('systemid3', 'eSgRCbaH2EWyBVbRyfBS7xfftYCAqE-BRaon1Uc350pi14qTVgsmDXLrK9TDJvPsKmAzgw==')]
结果如下:

import requests

# Host base URL
host = 'sampleurl.link/endpoint'
# Username and password for login to API endpoint
credentials = "username=sausage123%40spaniel.org&password=Passw0rd"

ses = requests.Session()

authString = ''

def auth(host):
    payload = credentials
    headers = {
            'Content-Type': "application/x-www-form-urlencoded",
        }

    ses.post("https://" + host + "/auth", data=payload, headers=headers)

    cookies = ses.cookies.get_dict()
    print(cookies.items())
    authString = "; ".join([str(x)+"="+str(y) for x,y in cookies.items()])
    print(authString)

auth(host)
[('systemid3', 'eSgRCbaH2EWyBVbRyfBS7xfftYCAqE-BRaon1Uc350pi14qTVgsmDXLrK9TDJvPsKmAzgw==')]
但是,从GoLang或Postman等效的相同API调用中,我获得了所有必需字段,包括path和expires:

systemid3=eSgRCbaH2EWyBVbRyfBS7xfftYCAqE-BRaon1Uc350pi14qTVgsmDXLrK9TDJvPsKmAzgw==; Path=/; Expires=Sat, 21 Sep 2019 09:37:46 GMT
请注意,Postman也给了我相同的“路径”和“过期”字段等

如何获取Requests lib,使我能够访问cookie中的所有字段,而不仅仅是前2个字段?为什么要隐藏/删除其他cookie字段


提前谢谢

这是因为您使用的是
.items()
,它只获取cookie名称和值

您可以访问以下类似的其他部分:

for cookie in s.cookies:
   print(cookie.name)
   print(cookie.value)
   print(cookie.expires)
   print(cookie.path)

非常感谢-就我而言,这是一个愚蠢的错误,抱歉-我假设cookies=ses.cookies.get_dict()将允许我将所有的值和concat放在一起,但现在还可以。。。感谢您的快速回答,吸取了教训!