Je me permets de reposter ce sujet, car je ne l'avais pas mis dans la bonne section à l'origine (Android). Ce n'est plus un problème spécifique Android comme je le croyais au début.
Je veux réaliser un mini serveur web qui ne fournit qu'un seul fichier, quelle que soit la requête.
J'ai à ma disposition tous les packages org.apache.http.*
Voilà ce que j'ai pour le moment :
La méthode openRawResource() me retourne un InputStream, et c'est la seule manière dont je peux accéder à mon fichier.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24 try { while (true) { Socket socket = this.serverSocket.accept(); DefaultHttpServerConnection conn = new DefaultHttpServerConnection(); conn.bind(socket, new BasicHttpParams()); HttpResponse response = new BasicHttpResponse(new BasicStatusLine(HttpVersion.HTTP_1_1, HttpStatus.SC_OK, null)); HttpEntity entity = new InputStreamEntity(this.application.getResources().openRawResource(R.raw.zip), 100000); response.setEntity(entity); conn.sendResponseEntity(response); conn.flush(); conn.shutdown(); } } catch (IOException e) { e.printStackTrace(); } catch (HttpException e) { e.printStackTrace(); }
Les problèmes que j'ai actuellement :
- Le serveur ne me répond que très aléatoirement
- Quand il veut bien me répondre, il ne me retourne que 1ko du fichier, alors qu'il fait au moins 10ko
Quelqu'un a une idée ?
Merci !
Partager