Java.net.SocketException: Unexpected end of file from server
djito79
Messages postés10Date d'inscriptionjeudi 4 septembre 2003StatutMembreDernière intervention31 août 2007
-
30 août 2007 à 19:27
djito79
Messages postés10Date d'inscriptionjeudi 4 septembre 2003StatutMembreDernière intervention31 août 2007
-
31 août 2007 à 17:26
chèr tous ,
Pourriez vous m'aider à comprendre s'il vous plaît ce que signifie l'erreur
java.net.SocketException: Unexpected end of file from server
je reçois cette erreur en appelant HttpUrlConnection.getResponseCode()
Merci beaucoup
Djito79
A voir également:
Unexpected end of file from server
Java.net.socketexception: unexpected end of file from server - Meilleures réponses
Caused by: java.net.socketexception: unexpected end of file from server - Meilleures réponses
Twinuts
Messages postés5375Date d'inscriptiondimanche 4 mai 2003StatutModérateurDernière intervention14 juin 2023111 31 août 2007 à 12:13
Salut,
déjà enlève le out.close();
[...]
wout.write("</methodCall>\r\n");
wout.flush();
System.out.println("xml request is sent to the server");
<strike>out.close();</strike>
InputStream in = connection.getInputStream(); //// je reçois l'errur ici
while ((response = in.read()) != -1) {
System.out.println("Server: " + response);
}
in.close();
out.close();//tu le fermes déjà ici connection.disconnect();
[...]
------------------------------------
"On n'est pas au resto : ici on ne fait pas dans les plats tout cuits ..."
djito79
Messages postés10Date d'inscriptionjeudi 4 septembre 2003StatutMembreDernière intervention31 août 2007 31 août 2007 à 13:17
Merci pour votre réponse..
je l'ai éssayé mais j'ai tjrs la même erreur
voici le rapport de l'erreur à la ligne 90 c-à-d à la ligne
InputStream in = connection.getInputStream(); //// je reçois l'errur ici
----------------------------------Rapport de l'erreur --------------
connection is opened
xml request is sent to the server
java.net.SocketException: Unexpected end of file from server
java.net.SocketException: Unexpected end of file from server
at sun.net.www.http.HttpClient.parseHTTPHeader(HttpClient.java:684)
at sun.net.www.http.HttpClient.parseHTTP(HttpClient.java:554)
at sun.net.www.http.HttpClient.parseHTTP(HttpClient.java:571)
at sun.net.www.protocol.http.HttpURLConnection.getInputStream(HttpURLConnection.java:936)
at Refill.main(Refill.java:90)
--------------fin du rapport ------------------
Est ce qu'on peut contourner ceete erreur autrement
Merci beaucoup
Vous n’avez pas trouvé la réponse que vous recherchez ?
Twinuts
Messages postés5375Date d'inscriptiondimanche 4 mai 2003StatutModérateurDernière intervention14 juin 2023111 31 août 2007 à 13:24
Salut,
tu as essayé d'initialiser le inputstream avant ton ecriture defois qu'elle soit cause du problème ? (on ne sait jamais l'ecriture peut mal se passer coté serveur du coups il se met dans un état instable...)
exemple :
[...]
OutputStream out = connection.getOutputStream();
OutputStreamWriter wout = new OutputStreamWriter(out, "UTF-8");
InputStream in = connection.getInputStream();
[...]
while ((response = in.read()) != -1) {
System.out.println("Server: " + response);
}
[...]
sinon pourquoi tu envoi ligne par ligne ton message ? tu ne peux pas le mettre dans un buffeur et l'envoyer d'un bloc ?
------------------------------------
"On n'est pas au resto : ici on ne fait pas dans les plats tout cuits ..."
djito79
Messages postés10Date d'inscriptionjeudi 4 septembre 2003StatutMembreDernière intervention31 août 2007 31 août 2007 à 13:55
Oui salut
Merci beacoup pour l'intêret que tu portes à ma question..
mais je ne sais pas cmt utiliser les buffer et mon problème ne setrouve pas au niveau de l'envoie des requettes au serveur .C'est en voulant recevoir la réponse du serveur ke j'ai cette erreur .Lorsque je mets cette partie en commentaire , tout sepasse bien ..mais mon problème c'est ke je n'ai pas la réponse du serveur...
si non l'envoie se passe bien
Espérant te lire bientôt
Merci
public static void main(String ... args) {
try {
URL u = new URL(DEFAULT_SERVER);
URLConnection uc = u.openConnection();
System.out.println("connection is opened");
HttpURLConnection connection = (HttpURLConnection) uc;
connection.setDoOutput(true);
connection.setDoInput(true);
connection.setRequestMethod("POST");
OutputStreamWriter wout = new OutputStreamWriter(connection.getOutputStream(), "UTF-8");
Scanner scanner = new Scanner(connection.getInputStream());
wout.write(buildXml());
wout.flush();
System.out.println("xml request is sent to the server");
djito79
Messages postés10Date d'inscriptionjeudi 4 septembre 2003StatutMembreDernière intervention31 août 2007 31 août 2007 à 14:55
Salut !!!
Merci toujours pour l'interêt que tu portes à ma question.
J'ai testé la méthode du Buffer et j'ai toujours la même erreur à la ligne 21 c-à-d
la ligne Scanner scanner = new Scanner(connection.getInputStream()); c-à-d au moment de la récup de InputStream().
j'ai même déplacé la recup de InputStream() mais dès kil rencontre la ligne là il renvoie tjrs la même erreur ....
voici le rapport de l'erreur
---------------------rapport de l'erreur ------------
connection is opened
java.net.SocketException: Unexpected end of file from server
at sun.net.www.http.HttpClient.parseHTTPHeader(HttpClient.java:684)
at sun.net.www.http.HttpClient.parseHTTP(HttpClient.java:554)
at sun.net.www.http.HttpClient.parseHTTP(HttpClient.java:571)
at sun.net.www.protocol.http.HttpURLConnection.getInputStream(HttpURLConnection.java:936)
at Refill2.main(Refill2.java:21)
---------------------fin rapport --------------------------------
Peut -on contourner autrement ?? si non Merci beaucoup
Espérant te lire bientôt
Djito79
Twinuts
Messages postés5375Date d'inscriptiondimanche 4 mai 2003StatutModérateurDernière intervention14 juin 2023111 31 août 2007 à 15:49
Salut,
je pense de plus en plus que ton problème est causé par la méthode "connection.setRequestMethod("POST")" en gros pour ecrire tu utilises POST ce qui est très bien mais pour la lecture tu le fais avec la méthode POST au lieu de GET ce qui doit poser problèmes sur ton serveur....
il faudrait que tu tests en passant en GET just avant de lire mais le problème est que tu dois fermer la connexion et ouvrir une nouvelle connexion pour switcher de méthode....
soit tu fais comme ça soit tu forges toi même tes requetes HTTP soit sans passer par HttpURLConnection... et c'est pas bien compliqué à mettre en place.... sinon je ne sais pas si il existe une autre solution (je n'ai jamais utilisé HttpURLConnection... généralement j'utilise une api que j'ai developpé pour faire des requetes HTTP(S) aussi bien en mode serveur qu'en mode client)
------------------------------------
"On n'est pas au resto : ici on ne fait pas dans les plats tout cuits ..."
djito79
Messages postés10Date d'inscriptionjeudi 4 septembre 2003StatutMembreDernière intervention31 août 2007 31 août 2007 à 17:26
salut
Merci infiniment pour pour l'assistance..ça m'a fait un grand plaisir et je pense ke c'est comme cela que les informaticiens doivent s'entraider.
je vais faire des recherches pour voir si je peux developper un API pour faire ces requêtes.
Merci infiniment et à bientôt
Djito79
[mailto:anats79@yahoo.de anats79@yahoo.de]