这是使用python模拟以下POST请求的正确方法吗?

2024-09-28 22:29:14 发布

您现在位置:Python中文网/ 问答频道 /正文

我需要模仿这个请求:

enter image description here

文本部分

POST /comeback_campaigns/entry HTTP/1.1
Host: ishin-global.aktsk.com
Accept: */*
X-Platform: android
X-Language: en
X-ClientVersion: 3.6.1
X-AssetVersion: 1510308536
X-DatabaseVersion: 1510542279
X-RequestVersion: 2
Content-Type: application/json
Authorization: MAC id="TVTYcxqDlO61l0yQYQnaKirWEVOPcVp2O4FCZOAb0pLrP++EEsKaqrlSho8VQRLFLV+4wvAV53DBwJyNuqUfqg==", nonce="1510773145:5a7b051af7f3e76e5b14f4e79753589f", ts="1510773145", mac="Eot1a1QPvyhecW3wNjWCW1JAENjuOjfjyxltmcguYqc="
Content-Length: 5

JSON部分

null

我在代码中这样写的,使用request函数

url='http://ishin-global.aktsk.com/comeback_campaigns/entry'

myhead={'Accept':'*/*',
    'X-Platform':'android',
    'X-Language':'en',
    'X-ClientVersion':'3.6.1',
    'X-AssetVersion':'1510308536',
    'X-DatabaseVersion':'1510542279',
    'X-RequestVersion':'2',
    'Content-Type':'application/json',
    'Authorization':'MAC id='+mac_key +', nonce='+TS+':'+nonce+', ts='+ TS + ', mac='+mac_gen,
    'Content-Length':'5'
    }


payload='null'

r=requests.post(url, headers=myhead, json=payload)

这是正确的方法吗?我是否必须发送auth部分,如request.post(url, auth, header)?在使用之前,是否必须将映像中的访问令牌转换为OAuth2?你知道吗

现在我得到一个错误说

oauth2_mac_rails/access_token_required

访问令牌是授权后的MAC id。你知道吗


Tags: comidjsonurlmaccontentglobalnonce
1条回答
网友
1楼 · 发布于 2024-09-28 22:29:14

Authorization键的各个部分周围添加引号("):

'Authorization': 'MAC id="' + mac_key + '", nonce="' + TS + ':' + nonce + '", ts="' + TS + '", mac="' + mac_gen + '"'

您当前正在发送一个不带中间引号的长字符串:

'Authorization': 'MAC id=TVTxxx, nonce=151xxx:5a7xxx, ts=151xxx, mac=Eotxxx'

你的推荐信看起来像:

'Authorization': 'MAC id="TVTxxx", nonce="151xxx:5a7xxx", ts="151xxx", mac="Eot..."'

相关问题 更多 >