带承载令牌的Python post请求

带承载令牌的Python post请求,python,rest,restapi,Python,Rest,Restapi,我试图制作一个脚本,将数据与承载令牌一起发布到REST服务上 下面是一个可用的PHP示例: $postData = array( 'app' => 'aaaa' ); $ch = curl_init($apiUrl); curl_setopt_array($ch, array( CURLOPT_HTTPHEADER, ['Authorization: Bearer '.$accessToken], CURLOPT_POST => TRUE, CURLOPT_

我试图制作一个脚本,将数据与承载令牌一起发布到REST服务上

下面是一个可用的PHP示例:

$postData = array( 'app' => 'aaaa' );

$ch = curl_init($apiUrl);
curl_setopt_array($ch, array(
    CURLOPT_HTTPHEADER, ['Authorization: Bearer '.$accessToken],
    CURLOPT_POST => TRUE,
    CURLOPT_RETURNTRANSFER => TRUE,
    CURLOPT_POSTFIELDS => json_encode($postData)
));

$response = curl_exec($ch);
我试图用python做同样的事情。这是我到目前为止得到的

import urllib2, urllib
import json

auth_token='kbkcmbkcmbkcbc9ic9vixc9vixc9v'
hed = {'Authorization': 'Bearer ' + auth_token}
data = urllib.urlencode({'app' : 'aaaaa'})

url = 'https://api.xy.com'
req = urllib2.Request(url=url, headers=hed, data=data)
content = urllib2.urlopen(req).read()
print content
我收到HTTP错误400:请求错误。
任何通知的帮助…

您都可以从响应中获得令牌

import requests

auth_token='kbkcmbkcmbkcbc9ic9vixc9vixc9v'
hed = {'Authorization': 'Bearer ' + auth_token}
data = {'app' : 'aaaaa'}

url = 'https://api.xy.com'
response = requests.post(url, json=data, headers=hed)
print(response)
print(response.json())
request.headers['authorization']

谢谢你的输入。使用您的代码,我得到{u'ErrorMessages':[u“必填字段'app'丢失”]}@Jakadinho:更新了答案,请重试