我有以下Python代码。我正在尝试将一些数据发送到SAP系统。我已经打开了一个会话,如何从会话中获取csrf-token值?我尝试使用client.cookies['csrftoken']查找它,但是抛出了一个错误,可能是因为CSRF令牌不在那里,或者如果我没有使用正确的密钥名称来获取CSRF令牌值。
早些时候,我尝试了不使用简单的get请求打开会话,并且能够获得CSRF令牌值,但我认为令牌不成立,并发现需要一个会话来维护令牌值。
打印print client.cookies只生成<RequestsCookieJar[<Cookie sap-usercontext=sap-client=100 for 34.239.8.24/>]>,打印print.client.headers生成{'Connection': 'keep-alive', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'User-Agent': 'python-requests/2.9.1'}。如何在此处找到CSRF令牌?
URL = "https://34.239.8.24:44300/sap/opu/odata/sap/ZRECEASY_PO_GL_POST_SRV/ZRECEASY_PO_GL_POSTSet"
auth_get_po_data ='S4H_FIN','Welcome1'
data = { "BUKR": 1710,"EBELN": 4500000004, "EBELP": 10,"EINDT": "20161103","OPEN_AMT": "3,000.00","PERC_REC_AMT": 0,"REC_AMT": 0, "ITEM_AMT": "3,000.00","INV_AMT": 0,"WAERS": "USD", "UPD_BY": "","UPD_DAT": "", "INV_APP": "", "SAKTO": "null", "KOSTL": "null", "AUFNR": "", "DESC": "", "KUNNR_NAM": "", "KUNNR": "", "COMMENT": "" }
client = requests.session()
client.get(URL, verify=False)
print client.cookies
csrftoken = client.cookies['csrftoken']
print csrftoken
login_data = dict(username="S4H_FIN", password="Welcome1", csrftoken=csrftoken, next='/')
r = client.post(URL, data=data, auth=auth_get_po_data, verify=False, headers=dict(Referer=URL))
print (r.text)https://stackoverflow.com/questions/47697465
复制相似问题