我在专用于执行spring android请求的线程中使用spring androID.
我无法实现终止从Spring androID(例如getForObject)启动的请求.
我试过了 :
>到达基础输入流以关闭,但已完全包装在springandroID restemplate中,无法从外部访问
>中断线程
>获取其余模板的请求工厂并调用destroy
>获得工厂的连接管理器并致电关机
>更改其余模板工厂的http客户端
>更改其余模板工厂的请求工厂
但我无法中止请求并快速发送新请求.第一个必须达到其超时.
我如何“杀死”一个春季androID请求以获得稳定的rest模板以发送新请求?
提前致谢.
解决方法:
我建议使用ResponseExtractor.
您可以调用RestTemplate的execute方法,如下所示.
file file = (file) restTemplate.execute(rootUrl.concat("/vocasets/{vocasetID}/{version}"), httpMethod.GET, requestCallabck, responseExtractor, uriVariables);
ResponseExtractor具有extractData方法.您可以通过响应的getbody()从extractData方法获取主体输入流.
扩展ResponseExtractor以取消您的请求.
祝好运.
就我而言,我使用了侦听器方式.
static class fileResponseExtractor implements ResponseExtractor<file> { ... public voID setListener(ReceivingListener Listener) { this.Listener = Listener; } @OverrIDe public file extractData(ClIEnthttpResponse response) throws IOException { inputStream is = response.getbody(); long contentLength = response.getheaders().getContentLength(); long availableSpace = AvailableSpaceHandler.getExternalAvailableSpaceInMB(); long availableBytes = AvailableSpaceHandler.getExternalAvailableSpaceInBytes(); Log.d(TAG, "available space: " + availableSpace + " MB"); long spareSize = 1024 * 1024 * 100; if(availableBytes < contentLength + spareSize) { throw new NotEnoughWritableMemoryException(availableSpace); } file f = new file(temporaryfilename); if (f.exists()) f.delete(); f.createNewfile(); OutputStream o = new fileOutputStream(f); Listener.onStart(contentLength, null); boolean cancel = false; try { byte buf[] = new byte[bufferSize]; int len; long sum = 0; while ((len = is.read(buf)) > 0) { o.write(buf, 0, len); sum += len; Listener.onReceiving(sum, len, null); cancel = !Listener.onContinue(); if(cancel) { Log.d(TAG, "Cancelled!!!"); throw new CancellationException(); } } } finally { o.close(); is.close(); Listener.onFinish(null); if(cancel) { f.delete(); } } return f; }}
总结 以上是内存溢出为你收集整理的java-取消/中止/中断spring-android resttemplate请求全部内容,希望文章能够帮你解决java-取消/中止/中断spring-android resttemplate请求所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)