Fitbit Java Https支持

时间:2014-11-20 11:23:28

标签: java https fitbit

Fitbit for Java是否真的支持https?

以前,代码有效。现在代码返回一个错误,请求我使用HTTPS。

{"errors":[{"errorType":"request","fieldName":"n/a","message":"This request should use https protocol."}],"success":false}

at com.fitbit.api.client.FitbitApiClientAgent.getUserInfo(FitbitApiClientAgent.java:2063)
at com.fitbit.api.client.FitbitApiClientAgent.getUserInfo(FitbitApiClientAgent.java:2039)
at Auth.populateDataGetters(Auth.java:112)
at Auth.<init>(Auth.java:106)
at Driver.main(Driver.java:18)
Caused by: com.fitbit.api.FitbitAPIException: 400: The request was invalid. An accompanying error message will explain why.

据我所知,OAuth似乎工作正常。

我的代码中唯一没有https的网址是:

String API_BASE_URL         = "api.fitbit.com";

当我将此字符串更改为&#34; https://api.fitbit.com&#34;时,我收到错误

Caused by: com.fitbit.api.FitbitAPIException: https
at com.fitbit.api.client.http.HttpClient.httpRequest(HttpClient.java:473)
at com.fitbit.api.client.http.HttpClient.get(HttpClient.java:398)
at com.fitbit.api.client.FitbitApiClientAgent.httpGet(FitbitApiClientAgent.java:2784)
at com.fitbit.api.client.FitbitApiClientAgent.httpGet(FitbitApiClientAgent.java:2734)
at com.fitbit.api.client.FitbitApiClientAgent.getUserInfo(FitbitApiClientAgent.java:2059)
... 4 more
Caused by: java.net.UnknownHostException: https
at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:178)
at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
at java.net.Socket.connect(Socket.java:579)
at sun.net.NetworkClient.doConnect(NetworkClient.java:175)
at sun.net.www.http.HttpClient.openServer(HttpClient.java:432)
at sun.net.www.http.HttpClient.openServer(HttpClient.java:527)
at sun.net.www.http.HttpClient.<init>(HttpClient.java:211)
at sun.net.www.http.HttpClient.New(HttpClient.java:308)
at sun.net.www.http.HttpClient.New(HttpClient.java:326)
at sun.net.www.protocol.http.HttpURLConnection.getNewHttpClient(HttpURLConnection.java:996)

稳定的Java Fitbit库在2年内没有更新,Java示例代码对独立应用程序没什么帮助。

2 个答案:

答案 0 :(得分:0)

好。我进入了fitbit开发论坛,似乎主网站(1.0.25)上发布的API已经过折旧,无法使用https。

基本上你需要重新编译source

有人也重新编译了源代码并将其发布在forums中。显然要小心。

同时将基本网址保留为&#34; api.fitbit.com&#34;。

答案 1 :(得分:0)

我在这里分配了项目:https://github.com/deadcyclo/fitbit4j

并在此处发布了一个公共maven存储库:https://nexus.vanntett.net/content/repositories/fitbit/

随意使用它。

目前唯一可用的版本是1.0.26(因为它是唯一的工作版本)。

如果fitbit决定更新项目,我会保持fork和repository同步。

修改:已更改为HTTPS