J'écris une application Android, qui a une fonction pour télécharger des données à une servlet, et quand je dis des données, je veux dire beaucoup de chaînes. La servlet fonctionne sous Apache Tomcat v6 et est écrite en Java. Partout où je regarde, je vois qu'une façon de le faire est d'utiliser HttpUrlConnection
.Comment envoyer une grande quantité de données à la servlet
côté client:
URL u = new URL("http://servlet location");
HttpURLConnection httpCon = (HttpURLConnection) u.openConnection();
httpCon.setRequestMethod("GET");
httpCon.setDoOutput(true);
httpCon.setDoInput(true);
httpCon.setUseCaches(false);
httpCon.setDefaultUseCaches(false);
DataInputStream in = new DataInputStream(httpCon.getInputStream()); // line 8
DataOutputStream out = new DataOutputStream(httpCon.getOutputStream());
// -- writing to servlet using the outputStream --`
... ...
côté Servlet:
DataInputStream dis = new DataInputStream(request.getInputStream());
DataOutputStream out = new DataOutputStream(response.getOutputStream());
int numFiles = dis.readInt(); //line 3
for(int i=0;i<numFiles;i++)
{
this.data.add(dis.readUTF()); //data is a vector that contains String types
}
Quand je rentre à la ligne 8 du côté client, il déclenche une demande HTTP GET
, que préformes côté servlet.
Tout va bien, mais quand le servlet arrive au ois.readUTF()
, il me lance une exception, au lieu d'attendre les données entrantes.
Quelle exception est-ce qu'il lance? –
dans le servlet je reçois une exception EOF – Netanel