首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在Netflix - OAuthCommunicationException上使用signpost API的OAuth问题

在Netflix - OAuthCommunicationException上使用signpost API的OAuth问题
EN

Stack Overflow用户
提问于 2011-02-03 12:10:49
回答 1查看 589关注 0票数 0

我尝试从retrieveRequestToken signpost API获取Auth_url。它抛出OAuthCommunicationException。当我对twitter使用相同的代码时(在更改了consumer和provide之后),它可以正常工作。请帮帮我。谢谢

代码语言:javascript
复制
public class NetflixTest {

private static final long serialVersionUID = 1L;

    public static final String NETFLIX_REQUEST_TOKEN_URL = "http://api.netflix.com/oauth/request_token";
    public static final String NETFLIX_ACCESS_TOKEN_URL = "http://api.netflix.com/oauth/access_token";
    public static final String NETFLIX_AUTHORIZE_URL = "https://api-user.netflix.com/oauth/login";

    public static void main(String[] args) {

        System.setProperty("debug", "1");
        OAuthConsumer consumer = new DefaultOAuthConsumer("jw5pvuq766d6rf4m2pu2ft5r", "y8x3dhMFqz");    
        OAuthProvider provider = new DefaultOAuthProvider(NETFLIX_REQUEST_TOKEN_URL,
            NETFLIX_ACCESS_TOKEN_URL, NETFLIX_AUTHORIZE_URL);

        try {
            String authUrl = provider.retrieveRequestToken(consumer, "http://mydomain.com/Netflix/");       
            System.out.println(authUrl);

        } catch (OAuthMessageSignerException e) {
            e.printStackTrace();
        } catch (OAuthNotAuthorizedException e) {
            e.printStackTrace();
        } catch (OAuthExpectationFailedException e) {
            e.printStackTrace();
        } catch (OAuthCommunicationException e) {
            e.printStackTrace();
            System.out.println(e.getResponseBody());
        }

    }
}
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2011-02-04 04:09:33

代码语言:javascript
复制
    if (connection.getRequestMethod().equalsIgnoreCase("POST")) {
        connection.setRequestProperty("Content-Type",
                "application/x-www-form-urlencoded");
        connection.setDoOutput(true);
        DataOutputStream wr = new DataOutputStream(
                connection.getOutputStream());
        wr.writeBytes("");
        wr.flush();
        wr.close();
    } else {
        connection.connect();
    }

如上所述更改了DefaultOAuthProvider类的sendRequest。看起来服务器是严格的,当你进行POST时需要一些字节。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/4882629

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档