2013-03-05 4 views
0

Mon application distribue des fichiers et recueille des statistiques. Il ya quelque temps, j'ai remarqué que si l'utilisateur essaie de télécharger le fichier à partir d'Android - serveur a reçu deux demandes à la place un. La première demande a échoué en raison de Caused by: java.net.SocketException: Connection reset by peer: socket write error La deuxième demande a été traitée correctement et l'utilisateur a reçu le fichier sur le téléphone. Donc c'est plus ou moins ok mais dans ce cas mes statistiques sont incorrectes. Je voyais question similaire sur [l'autre thread] [1]Problème de navigateur Android. Télécharger fait deux demandes à la place un

[1]: https://stackoverflow.com/a/8579181/273418 mais il n'y a pas de solution

Code de servlet qui distribue les fichiers

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); 
} 
+0

Comment téléchargez-vous le fichier? S'il vous plaît ajouter du code. – RvdK

+0

par url dans le navigateur – Diyko

+0

Pourquoi parlez-vous alors de 'votre' application? L'avez-vous essayé dans une application personnalisée avec WebView, navigateur différent sur Android (dolphin/chrome), navigateur sur TV? – RvdK

Répondre

Questions connexes