Je travaille sur un projet Java visant à créer une API pour un jeu de bataille navale. J'ai rencontré un problème avec le client HTTP, provoquant l'erreur java.io.IOException: fixed content-length: 118, bytes received: 0. Le problème survient lorsque j'essaie d'envoyer une requête POST vers une endpoint spécifique. Voici le code pertinent :
Launcher Class:
import fr.lernejo.navy_battle.misc.ConnectHunter;import fr.lernejo.navy_battle.misc.IdCreatorHunter;import fr.lernejo.navy_battle.misc.game.board.*;import java.util.concurrent.atomic.AtomicInteger;publicclassLauncher{privatestaticfinalAtomicIntegerport=newAtomicInteger();publicstaticvoidmain(String[] args){if(args.length <1){ System.err.println("Port not specified"); System.exit(1);}varboard=newBoardReadyToFight().createFinalBoard();try{ port.set(Integer.parseInt(args[0]));}catch(Exceptione){ System.err.println("Enter a valid port"); System.exit(1);}
System.out.println("Server is ready to fight on port: "+ port);try{newStartServerHunter().startServer(port.get());if(args.length ==2){Stringid=newIdCreatorHunter().createId();Stringmessage="Hell yeah! I'm ready for a fight!";newConnectHunter(Integer.toString(port.get()), args[1], id, message);}}catch(Exceptione){thrownewRuntimeException(e);}}publicstaticintgetPort(){return port.get();}}
Server is ready to fight onport:4321
http://localhost:1234/api/game/start POST
Exception inthread "main" java.lang.RuntimeException: java.io.IOException:fixedcontent-length:118,bytesreceived:0atfr.lernejo.navy_battle.Launcher.main(Launcher.java:22)Causedby: java.io.IOException:fixedcontent-length:118,bytesreceived:0atjava.net.http/jdk.internal.net.http.HttpClientImpl.send(HttpClientImpl.java:964)atjava.net.http/jdk.internal.net.http.HttpClientFacade.send(HttpClientFacade.java:133)atfr.lernejo.navy_battle.misc.ConnectHunter.<init>(ConnectHunter.java:23)atfr.lernejo.navy_battle.Launcher.main(Launcher.java:20)
Informations supplémentaires :
Le serveur est configuré en utilisant la classe StartServerHunter.
Le problème survient lors de l'envoi d'une requête POST depuis la classe ConnectHunter.
J'ai essayé avec des valeurs statiques et avec AsyncSend. Dans tous les cas, le message est envoyé, mais l'application plante juste après.
Exemple du message reçu par la première instance :
{"id":"ACQAETJB-HLYW-ESWV-EDYN-NDMPBKHWLVWA","url":"http://localhost:1234","message":"May the force be with you"}
A voir également:
Java HTTP client IOException: fixed content-length - bytes r