Get 请求非常简单:
def build_request(url, method='GET'):
params = {
'oauth_version': "1.0",
'oauth_nonce': oauth2.generate_nonce(),
'oauth_timestamp': int(time.time())
}
consumer = oauth2.Consumer(key='****',secret='******')
params['oauth_consumer_key'] = consumer.key
req = oauth2.Request(method=method, url=url, parameters=params)
signature_method = oauth2.SignatureMethod_HMAC_SHA1()
req.sign_request(signature_method, consumer, None)
return req
但是现在,我们想用一个文件做一个 POST。 (我们正在使用库 python-oauth2)。有什么建议吗?
问题是 oauth 不应该签署 multipart/post 数据,但它仍然需要签署其他参数。我解决这个问题的方法是使用 python-oauth2 对非文件参数进行签名,然后使用 urllib2 手动发送请求。
这是一个 example script .请参阅第 126 - 173 行。
我是一名优秀的程序员,十分优秀!