使用python-oauth2进行文件上载

使用python-oauth2进行文件上载,python,file-upload,oauth,Python,File Upload,Oauth,Get请求非常简单: def build_request(url, method='GET'): params = { 'oauth_version': "1.0", 'oauth_nonce': oauth2.generate_nonce(), 'oauth_timestamp': int(time.time()) } consumer

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

但是现在,我们想用一个文件发表一篇文章。(我们正在使用python-oauth2库)。建议?

从阅读源代码可以看出,请求采用了一种方法来声明要使用的HTTP请求

只需将您的请求更改为

req = oauth2.Request(method='POST', url=url, parameters=params)
更多信息

这可能在一定程度上解决了您的问题,对于文件上载,您可以使用提供标题的内容,请参见:


抱歉,我还没有机会测试这一点。

问题是oauth不应该对多部分/post数据进行签名,但它仍然需要对其他参数进行签名。我绕过它的方法是使用python-oauth2对非文件参数进行签名,然后使用urllib2手动发送请求


这是一个例子。参见第126-173行。

我在这里举了个例子,API v2感谢@jterrace