[JAVA] Extraction d'une chaine
Forum Programmation : [JAVA] Extraction d'une chaine
Bonsoir,
J'ai une requete http, et je souhaiterai en extraire le "host" de l'en-tete mais je ne trouve pas comment faire, si quelqu'un pouvait m'aider. ^^"
Merci.
Alors j'ai utilisé Substring, je ne sais pas si c'est bon,
Voici l'erreur que j'ai :
Exception in thread "main" java.lang.StringIndexOutOfBoundsException: String index out of range: -1
at java.lang.String.substring(Unknown Source)
at EchoBrowser.EchoBrowser.main(EchoBrowser.java:48)
Si ca peut aider.... :s
J'imagine qu'avant le substring, tu as fait une recherche dans la chaine. Si cette recherche retourne -1 (c'est-à-dire non trouvé), le substring va forcément générer une exception
81F900FA750230EDBADA03ECA80875FBECA808
74FBE4603C0175DFB80300CD10B8004CCD21
Répondre à CRicky
Ah... ca j'avai pas vu ^^"
Sinon il faut que je fasse comment pour trouver la position du host dans ma requete http alors ? :s
EDIT: c'est bon j'ai reussi, simple erreur... j'utilisai mal "indexOf(str)" pour calculer la position de ma chaine a extraire !
Message édité par KnaiL le 13-01-2008 à 14:10:12
J'ai une question:
Socket Socket sock = new Socket(1234); //Connecte le socket au port 1234
Si en suite je fait:
sock = new Socket(www.google.fr, 1234);
Est-ce que ca crée un deuxieme socket ou sa redefini les propriété du premier ?
Tu fait une référence vers un nouvel objet. En gros ton ancien objet Socket va devenir introuvable (si tu n'as pas fait un tmp = sock qqpart) et donc le garbage collector libèrera la mémoire.
Donc tu as fait ici un objet qui redéfini le premier via un objet totalement neuf.
Répondre à SiM07
Ok comme ca c'est clair, merci!
Encore une question! je rencontre des problemes au fur et a mesure que j'avance....
Comment connecter mon programme a un serveur HTTP et lui envoyer une requete GET url HTTP/1.1 ?
EDIT: Bon j'ai reussi a me connecter, seulement je ne reçoi aucune response de la part du serveur HTTP, lorsque je lui envoit GET http://www.google.fr/ HTTP/1.1
J'utilise des BufferedReader et Writer pour envoyer et recevoir, j'ai fait une boucle while ( !readBuffer.ready() ) { ... } mais elle boucle a l'infini... je ne recoi jamais de reponse, quelqu'un pourrait-il m'aider ?
Message édité par KnaiL le 13-01-2008 à 18:41:50
J'ai un code fait en TP qui devrait t'intéresser. C'est un serveur Web en Java. Il ne gère pas les erreurs, rien mais tu devrais y trouver quelques réponses à tes questions
.
Répondre à SiM07
Ouai c'est interessant comme tp, je regarderai ca plus en détail quand j'en trouverai le temps ^^
Moi en fait je suis coté client par rapport au serveur HTTP.
Mon programme reçoi les requete de mon navigateur, les envois au serveur, il reçoi ensuite la réponse du serveur et il l'a renvoi au navigateur (un proxy quoi...). Et la je suis bloqué car je n'arrive pas a récuperer la réponse lorsque je demande la page d'accueil google (pareil pour les autres...)! comme je l'ai expliqué ma boucle bufferreader.ready() boucle a l'infini... vous n'avez pas de solution ? :s
Hum j'ai le code d'un proxy également mais il est crade
il se charge juste de faire les connexions et si mes souvenirs sont bon il déconnais un peu.
D'ailleurs le problème je l'avais identifié lorsque j'ai fait le serveur, si tu regardes en bas dans le compte rendu j'ai mis
* Sortie de l'en-tête chez le client : (commentaire sur la ligne 129 : out.write(b, 0, n)
Sinon j'avais en effet une boucle.
N'oublie pas de fermer les connexions également.
Répondre à SiM07
Il y a 2460 utilisateurs connus et inconnus. Pour voir la liste des connectés connus, cliquez ici.

CRicky