Retrofit查询参数的值不大于2 ^ 32

时间:2015-01-26 06:40:58

标签: java android retrofit

我正在开发一个项目,我正在尝试使用user_id从twitter API获取一些数据。但改造无法连接 userId >整数上限(int类型变量)即使 id 变量设置为而且我一直在获得ERROR。

我有办法通过其他方式获取此信息,但我想知道改造是否不支持长类型变量?

以下是错误消息 -

01-26 11:50:17.600    4505-4505/com.kshitij.twitter E/CONNECTION ERROR﹕ com.google.gson.JsonSyntaxException: java.lang.NumberFormatException: Expected an int but was 2843025282 at line 1 column 17 path $.id

拨打电话的功能。

    cs.getUser(userId, new com.twitter.sdk.android.core.Callback<User>() {
        @Override
        public void success(com.twitter.sdk.android.core.Result<User> userResult) {
            AddUserObject userObject = createAddUserObject(userResult.data);
            addUserToDB(userObject);
        }

        @Override
        public void failure(TwitterException e) {
            Log.e("CONNECTION ERROR", e.getLocalizedMessage());
        }
    });

以下是相同的界面。

public static interface CustomService {

    @GET("/1.1/users/show.json")
    void getUser(@Query("user_id") long id, Callback<User> cb);

    @GET("/1.1/statuses/user_timeline.json")
    void getTweets(@Query("user_id") long id, @Query("count") long count, Callback<List<Description>> cb);
}

1 个答案:

答案 0 :(得分:1)

您的User Java对象声明int id;应该是long

由于ID没有数字意义,因此您最好总是将其用作String