gpt4 book ai didi

android - 在 RoboSpice 请求 android 中设置连接超时

转载 作者:塔克拉玛干 更新时间:2023-11-02 22:57:01 24 4
gpt4 key购买 nike

我在 android 中使用 RoboSpice 进行 Rest Api 调用,我想在调用中添加 30 秒的连接超时,我该怎么做?

这是我的代码

 public class AddBrandsService extends
SpringAndroidSpiceRequest<AddBrands.Response> {

public final AddBrands.Response loadDataFromNetwork(){

return getRestTemplate().postForObject(url,
request, AddBrands.Response.class);
}

}


this service is called here

private SpiceManager contentManager = new SpiceManager(
JacksonSpringAndroidSpiceService.class);

contentManager.execute(service, lastRequestCacheKey,
DurationInMillis.ONE_SECOND, new AddBrandsListner());

提前致谢...

最佳答案

这是代码。基本上,您必须注意 android 的版本,因为 spring android 在两个不同的实现之间切换,以避免网络堆栈中的已知错误。不幸的是,这两种实现在超时方面没有共享一个通用接口(interface)。

private void manageTimeOuts(RestTemplate restTemplate) {
// set timeout for requests
ClientHttpRequestFactory factory = restTemplate.getRequestFactory();
if (factory instanceof HttpComponentsClientHttpRequestFactory) {
HttpComponentsClientHttpRequestFactory advancedFactory = (HttpComponentsClientHttpRequestFactory) factory;
advancedFactory.setConnectTimeout(WEBSERVICES_TIMEOUT);
advancedFactory.setReadTimeout(WEBSERVICES_TIMEOUT);
} else if (factory instanceof SimpleClientHttpRequestFactory) {
SimpleClientHttpRequestFactory advancedFactory = (SimpleClientHttpRequestFactory) factory;
advancedFactory.setConnectTimeout(WEBSERVICES_TIMEOUT);
advancedFactory.setReadTimeout(WEBSERVICES_TIMEOUT);
}
}

关于android - 在 RoboSpice 请求 android 中设置连接超时,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16707357/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com