我正在嘗試將支持HTTPS請求的支付服務'Mollie'(http://www.mollie.nl)集成到Java環境中。Java Jersey使用驗證標頭的HTTPS GET請求
至於這個帖子中,我將使用以下請求解釋: 在PHP(因爲我有一個PHP背景)我可以捲曲工作:
$ curl -X GET https://api.mollie.nl/v1/methods \
-H "Authorization: Bearer API-KEY"
其中有一個迴應:
測試來自DHC(或郵差)的請求返回正確的響應。
所以在Java中我使用的是新澤西州庫嘗試訪問請求:
Client client = Client.create();
WebResource webResource = client.resource("https://api.mollie.nl/v1/methods");
webResource.header("Authorization", "Bearer API-KEY");
ClientResponse response = webResource
.header("Content-Type", "application/json;charset=UTF-8")
.type("application/json")
.accept("application/json")
.get(ClientResponse.class);
int statusCode = response.getStatus();
if (statusCode == 401) {
throw new AuthenticationException("Invalid Username or Password");
}
String responseCall = response.getEntity(String.class);
當執行Java代碼的請求將引發ClientHandlerException:
HTTP Status 500 - com.sun.jersey.api.client.ClientHandlerException: java.net.ConnectException: Connection timed out: connect
我從Apache本地主機服務器上運行Java測試。 但我不明白爲什麼Java請求給出了超時,因爲驗證頭似乎設置正確(至少對我來說)。
我所注意到的是當訪問請求的路徑https://api.mollie.nl/v1/methods時,它顯示一個驗證彈出窗口。
這將是很好的獲得一些有用的提示或有關此問題的信息。 我錯過了什麼嗎?
謝謝!
運行你的java代碼給了我'GET https://api.mollie.nl/v1/methods返回401未授權的響應狀態,所以它看起來不是這個問題。 – Thomas
@ daan.desmedt看起來像服務有問題500是內部服務器錯誤... – brso05
[ConnectException](https://docs.oracle.com/javase/8/docs/api/index.html?爪哇/網/的ConnectException。html)涉及底層的套接字連接,所以我認爲它與授權頭(這是更高級協議的一部分)沒有任何關係。完整的堆棧跟蹤應該清楚地表明,你是否介意發佈它? – Lolo