使用标头发出请求时出错

时间:2016-02-21 08:55:57

标签: python api

我正在尝试向带有一些标头的网址发出请求,但它似乎无法正常工作。我得到一个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

1 个答案:

答案 0 :(得分:0)

错误是你传递的东西不是字符串作为标题值。事实上,

 'oauth_version': 1.0,
 'oauth_timestamp': int(time.time()),

传递数值而不是字符串值。制作这个字符串,让我们看看它是否有效。