首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用SAP客户端的CSRF令牌请求

使用SAP客户端的CSRF令牌请求
EN

Stack Overflow用户
提问于 2017-12-07 22:39:23
回答 0查看 533关注 0票数 1

我有以下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令牌?

代码语言:javascript
复制
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)
EN

回答

页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/47697465

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档