Android浏览器问题。下载使两个请求改为一个

时间:2013-03-05 14:30:10

标签: java android download request

我的应用分发文件并收集统计信息。 前段时间我注意到如果用户尝试从android下载文件 - 服务器收到两个请求而不是一个。由于Caused by: java.net.SocketException: Connection reset by peer: socket write error,第一次请求失败 第二个请求已正确处理,用户在手机上收到文件。所以它或多或少都可以,但在这种情况下,我的统计数据是不正确的。我在[另一个主题] [1]

上看到了类似的问题

[1]:https://stackoverflow.com/a/8579181/273418但没有任何解决方案

分发文件的servlet代码

try {
  StringBuilder typeHeader = new StringBuilder("application/vnd.android.package-archive");
  String contentType = FdConstants.CONTENT_TYPE_HEADER.getValue();
  response.setHeader(contentType, typeHeader.toString());
  StringBuilder dispositionHeader = new StringBuilder("attachment; filename=\"");
  dispositionHeader.append(fileName.toUpperCase());
  dispositionHeader.append("\"");
  String contentDisposition = FdConstants.CONTENT_DISPOSITION_HEADER.getValue();
  response.setHeader(contentDisposition, dispositionHeader.toString());
  response.setContentLength(fileStream.available());
  // copy it to response's OutputStream
  IOUtils.copy(fileStream, response.getOutputStream());
  response.flushBuffer();

} finally {
  IOUtils.closeQuietly(fileStream);
}

1 个答案:

答案 0 :(得分:0)

按设计行为https://code.google.com/p/android/issues/detail?id=1978 类似的问题在这里{{3p>