Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/python-3.x/17.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
这是使用python模拟以下POST请求的正确方法吗?_Python_Python 3.x_Python Requests - Fatal编程技术网

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

这是使用python模拟以下POST请求的正确方法吗?,python,python-3.x,python-requests,Python,Python 3.x,Python Requests,我需要模仿这个要求: 文本部分 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: app

我需要模仿这个要求:

文本部分

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)
这是正确的方法吗?我是否必须像request.post(url、auth、header)那样发送身份验证部分?在使用之前,我必须将映像中的访问令牌转换为OAuth2吗

现在我听到一个错误说

oauth2\u mac\u轨道/访问\u令牌\u必需

访问令牌是授权后的MAC id。

授权
密钥的各个部分周围添加引号(
):

'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..."'
授权
键的各个部分周围添加引号(
):

'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..."'

我怀疑发送
json='null'
可能会导致问题,要么发送空字符串,要么不使用此字段。不要发布代码或HTTP请求的屏幕截图,因为您可以将其复制并粘贴到问题中。@alfasin我将其更改为发送json={},但错误仍然存在,即使授权:包含mac\u ID(在这种情况下,它是访问令牌),它仍然没有收到访问令牌。我知道它会收到剩余的授权罚款,因为如果最后的mad ID是错误的,它会给出一个不同的错误。我感觉,
请求
将为您处理内容长度,因此您可能可以删除它。此外,这个请求很奇怪,因为它指定了
Co内容类型:application/json
,但发布文本字符串
null
。我怀疑发送
json='null'
可能会导致问题,要么发送空字符串,要么不使用此字段。如果可以复制并粘贴到问题中,请不要发布代码或HTTP请求的屏幕截图。@alfasin我将其更改为发送json={},但错误仍然存在,即使authorization:包含mac_ID(在本例中是访问令牌),它仍然没有收到访问令牌。我知道它会收到剩余的授权罚款,因为如果最后的mad ID是错误的,它会给出一个不同的错误。我感觉,
请求
将为您处理内容长度,因此您可能可以删除它。此外,这个请求很奇怪,因为它指定了
Co内容类型:application/json
,但是发布了文本字符串
null
。哈哈哈,谢谢!这是MAC id需要引号的问题。其余部分不需要引号。如果这是正确答案,请随意接受,以便将问题标记为已解决。看看这里:除了接受,您还可以投票(向上/向下)有灰色错误。哈哈哈,谢谢!这是MAC id需要引用的问题。其余部分不需要引用。如果这是正确的答案,请随意接受,以便将问题标记为已解决。看看这里:除此之外,你还可以用灰色错误投票(向上/向下)。