我正在尝试向带有一些标头的网址发出请求,但它似乎无法正常工作。我得到一个error(TypeError:期望的字符串或类似字节的对象)
import time
from rauth.service import OAuth1Service
import oauth
import rauth
import hmac
import requests
import oauth2 as oauth1
url = 'https://secure.trademe.co.nz/Oauth/RequestToken?scope=MyTradeMeRead,MyTradeMeWrite '
headers = {'oauth_callback': "http%3A%2F%2Fwww.website-tm-access.co.nz%2Ftrademe-callback",
'oauth_consumer_key' : "C74CD73FDBE37D29BDD21BAB54BC70E422" ,
'oauth_version': 1.0,
'oauth_timestamp': int(time.time()),
'oauth_nonce' : oauth1.generate_nonce(),
'oauth_signature_method' : "HMAC-SHA1",
'oauth_signature' : "5s3%2Bel078a5AXGi43FBDyfg5yWY%3D"
}
r = requests.get(url, headers=headers)
跟随此:
要制作授权标头,只需附加以“OAuth”开头的所有值即可。每个值都必须进行URL编码。
1. Authorization: OAuth oauth_callback="http%3A%2F%2Fwww.website-tm-access.co.nz%2Ftrademe-callback",
> oauth_consumer_key="C74CD73FDBE37D29BDD21BAB54BC70E422",
> oauth_version="1.0", oauth_timestamp="1285532322",
> oauth_nonce="7O3kEe", oauth_signature_method="HMAC-SHA1",
> oauth_signature="5s3%2Bel078a5AXGi43FBDyfg5yWY%3D"
我们终于可以做到了 对服务器的请求。通过提出要求 https://secure.trademe.co.nz/Oauth/RequestToken?scope=MyTradeMeRead,MyTradeMeWrite 使用Authorization标头,我们应该返回一个oauth_token和 oauth_token_secret。
oauth_token=86EE20AFF655C34CB34873449A5F98020B&oauth_token_secret=905448B594595D5A030DC68BE40AE03C2B&oauth_callback_confirmed=true
答案 0 :(得分:0)
错误是你传递的东西不是字符串作为标题值。事实上,
'oauth_version': 1.0,
'oauth_timestamp': int(time.time()),
传递数值而不是字符串值。制作这个字符串,让我们看看它是否有效。