Se connecter / S'enregistrer
Votre question

[JAVA] Extraction d'une chaine

Tags :
  • http
  • Programmation
Dernière réponse : dans Programmation
12 Janvier 2008 21:57:58

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.

Autres pages sur : java extraction chaine

13 Janvier 2008 01:50:17

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
a b L Programmation
13 Janvier 2008 12:07:28

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 :) 
Contenus similaires
13 Janvier 2008 13:38:36

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 !
13 Janvier 2008 15:15:57

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 ?
13 Janvier 2008 15:21:12

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.
13 Janvier 2008 17:22:56

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 ?
13 Janvier 2008 23:53:11

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 :) .
14 Janvier 2008 18:35:51

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
14 Janvier 2008 19:49:54

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.
Tom's guide dans le monde
  • Allemagne
  • Italie
  • Irlande
  • Royaume Uni
  • Etats Unis
Suivre Tom's Guide
Inscrivez-vous à la Newsletter
  • ajouter à twitter
  • ajouter à facebook
  • ajouter un flux RSS