简体   繁体   中英

Retrofit StackOverFlow

I'am trying to do a login using Retrofit and OkHttp and I get the StackOverflowError.

private Gson gson = new GsonBuilder()
    .setDateFormat("yyyy-MM-dd")
    .create();

private RequestInterceptor requestInterceptor = new RequestInterceptor() {
    @Override
    public void intercept(RequestFacade request) {
        request.addHeader("User-Agent", UserAgent);
        request.addHeader("Accept", "application/json");
    }
};

OkHttpClient okHttpClient = new OkHttpClient();
okHttpClient.setConnectTimeout(15, TimeUnit.SECONDS);

RestAdapter restApdter = new RestAdapter.Builder()
    .setEndpoint(API_PATH)
    .setRequestInterceptor(requestInterceptor)
    .setConverter(new GsonConverter(gson))
    .setClient(new OkClient(okHttpClient))
    .build();

service = restApdter.create(UserService.class);
service.loginUser(jUser, new Callback<User>() {
@Override
public void success(User user, Response response) {               
}

@Override
public void failure(RetrofitError error) {                
}
});

Someone knows why I get this error? Thanks for help

It is possible you have the same problem as this guy: retrofit and orm library throw StackOverflow

Does the User class you use extend a model class of an ORM by any chance? If that's the case one solution is to duplicate your class and use one for serializing and other one for database writing.

我刚刚使用OkHttp https://github.com/saleeh93/APIservice-Sample/为Retrofit编写了boilderplate代码

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM