2012-10-13 19 views
1

我很難試圖讓抄寫員與Imgur交互。我一直收到未找到與api.imgur.com匹配的主題替代DNS名稱。當使用抄寫員訪問api.imgur.com

java.security.cert.CertificateException:未找到與api.imgur.com匹配的主題替代DNS名稱。

從我從general solutions for these types of issues可以收集到的是證書上的通用名稱與服務器名稱不匹配,但我檢查了https://api.imgur.com/oauth/request_token的證書,結果發現沒有任何證據表明這一點(api.imgur.com == api.imgur.com,認真,這不符合)。無論如何,這裏是我正在使用的代碼。

OAuthService service = new ServiceBuilder().debug().provider(ImgUrApi.class) 
    .provider(ImgUrApi.class) 
    .apiKey(CONSUMER_KEY) 
    .apiSecret(CONSUMER_SECRET) 
    .build(); 

Token requestToken = service.getRequestToken(); //Fails here 

這裏是從調試

obtaining request token from https://api.imgur.com/oauth/request_token 
setting oauth_callback to oob 
generating signature... 
base string is: POST&https%3A%2F%2Fapi.imgur.com%2Foauth%2Frequest_token&oauth_callback%3Doob%26oauth_consumer_key%<my-imgur-key>%26oauth_nonce%3D190893231%26oauth_signature_method%3DHMAC-SHA1%26oauth_timestamp%3D1350152724%26oauth_version%3D1.0 
signature is: WGRVhKKWqiFiD939LI3eOHHKAJg= 
appended additional OAuth parameters: { oauth_callback -> oob , oauth_signature -> WGRVhKKWqiFiD939LI3eOHHKAJg= , oauth_version -> 1.0 , oauth_nonce -> 190893231 , oauth_signature_method -> HMAC-SHA1 , oauth_consumer_key -> <my-imgur-key> , oauth_timestamp -> 1350152724 } 
using Http Header signature 
sending request... 

不知道我能做些什麼來解決這個問題,因爲沒有看起來殘破的輸出。我想我錯過了一些明顯的東西。

+0

一時興起,我嘗試了與Twitter的相同的代碼,它的工作!我認爲問題在於下載部分的jar文件缺少imgur api類。我想我可以自己添加它。這可能是我的問題。我將只下載Scribe源文件並重試。 – danclark

回答

0

我不認爲問題是該類不在包中,如果是的話,甚至在嘗試獲取ClassNotFoundException的請求令牌之前應該會失敗。

好像你確實有證書有問題,你需要挖掘更多的,但現在我想這可以幫助:

http://www.exampledepot.com/egs/javax.net.ssl/trustall.html

注意,在生產中使用此提出安全問題這只是爲了證明這一點並減少問題空間。

+0

只是一個更新。我在[Apache的HTTPComponents](http://hc.apache.org/)上閱讀了我自己的邏輯來連接到Imgur API,但我仍然遇到同樣的問題。我不確定答案會是什麼。最奇怪的部分是,當我通過Web瀏覽器訪問URI時證書看起來很好。 – danclark

+0

我接觸到了Imgur,他們表示他們使用[SNI](http://en.wikipedia.org/wiki/Server_Name_Indication),並且似乎還有一些關於HTTPComponents的討論在https:// issues.apache.org/jira/browse/HTTPCLIENT-1119。稍後我會嘗試更新正式答案。 – danclark

相關問題