0
我有一個可以在Mendeley上與OAuth1一起工作的應用程序。由於不支持OAth1,我必須將我的應用程序遷移到OAuth2以獲取數據。無法通過在Java中使用OAuth2和HTTP檢索Mendeley的數據
我得到令牌響應,但我無法請求任何內容,程序會引發NullPointerException。
我正在測試與此源代碼here。
我也使用Apache OLTU和Apache了HTTPClient
這是我嘗試運行代碼:
static OAuthClientRequest request;
static OAuthClient oAuthClient;
static OAuthJSONAccessTokenResponse tokenResponse ;
static String CATALOG_URL="https://api-oauth2.mendeley.com/oapi/documents/groups?items=10";
request = OAuthClientRequest
.tokenLocation("https://api-oauth2.mendeley.com/oauth/token")
.setClientId(Client_ID)
.setClientSecret(Secret)
.setGrantType(GrantType.CLIENT_CREDENTIALS)
.setScope("all")
.buildBodyMessage();
System.out.println("is set up");
oAuthClient = new OAuthClient(new URLConnectionClient());
tokenResponse = oAuthClient.accessToken(request, OAuthJSONAccessTokenResponse.class);
System.out.println("token is retrieved");
HttpGet httpGet = new HttpGet(CATALOG_URL);
httpGet.setHeader("Authorization", "Bearer " + tokenResponse.getAccessToken());
//this is where the Exception is thrown
HttpResponse httpResponse = apacheHttpClient.execute(httpGet);
//
System.out.println("this is it: "+httpResponse.toString());
String responseAsString = EntityUtils.toString(httpResponse.getEntity());
System.out.println(responseAsString);
我得到的例外是:
Exception in thread "main" java.lang.NullPointerException
我現在問自己爲什麼會發生這種情況。 CATALOG_URL來自Mendeley網站,應返回包含所有公共組的列表的第一頁。
我也試過了Mendeley網站的不同網址。
HttpGet語句可能有什麼問題嗎?
有沒有人有任何提示?