2011-02-03 1 views
0

私はretrieveRequestToken標識APIからAuth_urlを取得しようとしました。 OAuthCommunicationExceptionをスローします。 Twitterで同じコードを使用したとき(消費者を変更して提供した後)、問題なく動作します。ここで私を助けてください。おかげNetflixでsignpost APIを使用したOAuthに関する問題 - OAuthCommunicationException

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()); 
     } 

    } 
} 
+0

システム時刻がNTPサーバーに同期されていることを確認してください。私は、システム時間があまりにも遥かにずれてしまったため、NetflixがOAuthリクエストを拒否する問題を抱えていました。 –

+0

私のsystimeが同期しています – Vjy

答えて

0
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を実行するといくつかのバイトが必要です。

関連する問題