Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
2154 connectés 

  FORUM HardWare.fr
  Programmation
  Java

  requêtes CGI

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

requêtes CGI

n°803417
zaobisgero
Posté le 22-07-2004 à 16:33:26  profilanswer
 

Bonjour,
 
Comment envoyer une requête CGI à une camera IP (du type http://<adresseIP de la caméra>/cgi-bin/com/ptz.cgi?move=up) en JAVA.  
Cette requête fonctionne lorsqu'elle est contenue dans une page HTML, mais je n'arrive pas à la faire fonctionner dans une interface programmée en JAVA.
 
Voici la manière avec laquelle je procède :
Socket my_socket = new Socket("10.10.100.254", 8080);
 
DataOutputStream send_data = new DataOutputStream
                  (my_socket.getOutputStream());
DataInputStream read_data = new DataInputStream
                  (my_socket.getInputStream());
 
   
send_data.writeBytes("GET/POST /cgi-bin/com/ptz.cgi?move=up HTTP/1.0\r\n" );
send_data.writeBytes("Content-type: application/x-www-form-
                     urlencoded\r\n" );
send_data.writeBytes("Authorization Basic cm9vdD0ZWRo\r\n" );
 
 
 
      String str = null;
      String firstLine = null;
      while (null != ((str = read_data.readLine())))
      {
        if (null == firstLine)
          firstLine = str;
 
 
        System.out.println( str + "\n" );
      }
         
      my_socket.close();
 
 
Merci d'avance pour un coup de pouce, ou un lien vers un prog similaire...
   


---------------
de la part de Zao...
mood
Publicité
Posté le 22-07-2004 à 16:33:26  profilanswer
 

n°803463
zaobisgero
Posté le 22-07-2004 à 16:49:07  profilanswer
 

J'ai aussi essayé d'utiliser UrlConnection (à partir de l'URL de mon script CGI) de java.net.* mais rien n'y fait.


---------------
de la part de Zao...
n°803502
gedeon
Posté le 22-07-2004 à 17:09:00  profilanswer
 

Y'a un truc je je ne comprend pas
Si ton adresse est du type :  
http://<adresseIP de la caméra>/cgi-bin/com/ptz.cgi?move=up
pourquoi ouvrir ce genre de socket ?  
Socket my_socket = new Socket("10.10.100.254", 8080);  
je serais d'accord si ton url etait :  
http://<adresseIP de la caméra>:8080/cgi-bin/com/ptz.cgi?move=up
 
Essaye avec  
Socket my_socket = new Socket("10.10.100.254", 80);  
 
Sinon precise le type de problème que tu rencontres car les messages du genre : " j'arrive pas a y arriver" ne nous aident pas.  ;)  

n°803513
zaobisgero
Posté le 22-07-2004 à 17:13:48  profilanswer
 

Quand je dis "<adresseIP de la camera>, je comprenait aussi le port qui est 8080.


---------------
de la part de Zao...
n°803537
gedeon
Posté le 22-07-2004 à 17:24:02  profilanswer
 

Ce qui est evident a deviner !!!  :sarcastic:  
<adresse ip de la cam : port> donc !
 
Bref , sinon t'as du detail ? l'endroit exact ou ça passe pas, le retour, le type d'exception généré ... etc

n°803556
zaobisgero
Posté le 22-07-2004 à 17:32:52  profilanswer
 

Ce qu'on attends avec ce bout de code, c'est que la caméra se déplace vers le haut (elle est motorisée).
Or, à l'exécution, rien ne se passe, par contre, on reçoit la réponse suivante :
 
"HTTP/1.0 400 Bad Request
 
Date: Thu, 22 Jul 2004 17:29:39 GMT
 
Server: Boa/0.92o
 
Content-Type: text/html
 
<HTML><HEAD><TITLE>400 Bad Request</TITLE></HEAD>
 
<BODY><H1>400 Bad Request</H1>
 
Your client has issued a malformed or illegal request.
 
</BODY></HTML>"
 
Ce qui est étrange dans le sens où la requête utilisée fonctionne parfaitement dans une page HTML.  
 


---------------
de la part de Zao...
n°803567
lorill
Posté le 22-07-2004 à 17:35:53  profilanswer
 

zaobisgero a écrit :


send_data.writeBytes("GET/POST /cgi-bin/com/ptz.cgi?move=up HTTP/1.0\r\n" );


ben oui, la ca peut pas marcher.... mais tu devrais persister avec URL plutot que comme ca, la c'est un peu de la bidouille

n°803574
zaobisgero
Posté le 22-07-2004 à 17:40:54  profilanswer
 

Et t'as une idée avec URL?


---------------
de la part de Zao...
n°803589
lorill
Posté le 22-07-2004 à 17:47:37  profilanswer
 

zaobisgero a écrit :

Et t'as une idée avec URL?

si tu nous file un bout de code, et surtout l'erreur, on en aura peut-etre (je ne pense pas que ce soit la même)

n°803601
zaobisgero
Posté le 22-07-2004 à 17:52:47  profilanswer
 

j'ai pas mal touché l'urlConnection style:  
 
 
try  
{  
URL url;  
URLConnection urlConn;  
DataOutputStream printout;  
DataInputStream input;  
 
url = new URL ("http://10.10.100.254:8080/cgi-bin/com/ptz.cgi" );  
urlConn = url.openConnection();  
urlConn.setDoInput (true);  
urlConn.setDoOutput (true);  
urlConn.setUseCaches (false);  
urlConn.setRequestProperty("Content-Type", "text/plain" );  
 
// envoi requete  
printout = new DataOutputStream (urlConn.getOutputStream ());  
 
String content ="move=" + URLEncoder.encode ("up" );  
 
printout.writeBytes (content);  
printout.flush ();  
printout.close ();  
 
 
// reception reponse.  
input = new DataInputStream (urlConn.getInputStream ());  
String str = null;  
String firstLine = null;  
while (null != ((str = input.readLine())))  
{  
 
if (null == firstLine)  
firstLine = str;  
 
textArea.appendText (str + "\n" );  
}  
 
input.close ();  
 
}  
catch (MalformedURLException me)  
{  
me.printStackTrace();  
}  
catch (IOException ioe)  
{  
ioe.printStackTrace();  
}  
 
Renvoi 401 non autorisé pour la partie réception


---------------
de la part de Zao...
mood
Publicité
Posté le 22-07-2004 à 17:52:47  profilanswer
 

n°803604
gedeon
Posté le 22-07-2004 à 17:54:02  profilanswer
 

Ton navigateur utilise peut etre le protocol http 1.1 essaye de voir aussi dans cette direction

n°803605
zaobisgero
Posté le 22-07-2004 à 17:54:03  profilanswer
 

Par contre,  
j'ai pas d'erreur de code.  


---------------
de la part de Zao...
n°803606
zaobisgero
Posté le 22-07-2004 à 17:54:18  profilanswer
 

je regarde


---------------
de la part de Zao...
n°803608
zaobisgero
Posté le 22-07-2004 à 17:55:49  profilanswer
 

c'est toujours la même chose : pas d'erreur de code, mais reponse du type : "400 bad request"


---------------
de la part de Zao...
n°803636
lorill
Posté le 22-07-2004 à 18:08:00  profilanswer
 

zaobisgero a écrit :


url = new URL ("http://10.10.100.254:8080/cgi-bin/com/ptz.cgi" );  


pourquoi tu passes pas ton parametre ici comme dans ta page web ?
 

Citation :


urlConn.setDoInput (true);  
urlConn.setDoOutput (true);  
urlConn.setUseCaches (false);  
urlConn.setRequestProperty("Content-Type", "text/plain" );  


ca je pense pas que t'en ai besoin
 

Citation :


printout = new DataOutputStream (urlConn.getOutputStream ());  
String content ="move=" + URLEncoder.encode ("up" );  
printout.writeBytes (content);  
printout.flush ();  
printout.close ();  


la tu fais du POST, ce que t'aurais pas besoin de faire en passant le parametre directement a l'url
 
[quote]Renvoi 401 non autorisé pour la partie réception[/citation]
donc une autre erreur qu'avant. avec le navigateur, tu dois t'authentifier ?

n°803657
zaobisgero
Posté le 22-07-2004 à 18:16:00  profilanswer
 

Je dois m'identifier, effectivement. c'est d'ailleurs ce que je fais mais rien n'y change.
Le probleme doit venir de cette ligne :
input = new DataInputStream (urlConn.getInputStream ());  


---------------
de la part de Zao...
n°803729
lorill
Posté le 22-07-2004 à 21:00:11  profilanswer
 

zaobisgero a écrit :

Je dois m'identifier, effectivement.


 

Citation :

Renvoi 401 non autorisé pour la partie réception

 
donc c'est que tu le fais pas
 
(en passant, abandonne vraiment l'idée des sockets, tu fais n'imp avec, ta requete peut pas etre valable...)

n°804268
zaobisgero
Posté le 23-07-2004 à 12:21:56  profilanswer
 

J'ai trouvé la solution. Merci quand même d'avoir essayé, mais pour votre gouverne, il faut utiliser les sockets!
Je ne vous donnerai bien sûr pas la solution car, et d'une, vous vous en foutez, et de deux vous vous la jouez un peu de trop à mon goût. Sur ceux, sachez que c'est la dernière fois que je me promène sur un forum de ce genre où on ne trouve que des types qui passent leur temps à casser les nouveaux messages. Adieu messieurs et sachez que vous n'êtes pas des "ELUS" parce que vous êtes derrière un PC... vous n'êtes pas Neo!!! "Bienvenu dans le monde réel".
[Message terminé!]
 
P.S: Il faut respecter les gens si vous voulez qu'on vous respecte...


---------------
de la part de Zao...
n°804317
gedeon
Posté le 23-07-2004 à 12:45:33  profilanswer
 

Je cherche les parties de mes messages ou j'ai manqué de respect.
Et dans les posts des autres je vois pas de truc flagrant non plus
 
1 - c'est sur que la solution nous importe moins qu'a toi, mais on aimerai bien savoir
2 - Je n'ai pas vu d'elus mais des personnes qui ont voulu aider quelqu'un d'aparement trop suceptible.  
3 - Ne pas prendre de pincettes pour dire quelque chose n'est pas un manque de respect !
 
 

n°804337
uriel
blood pt.2
Posté le 23-07-2004 à 13:05:49  profilanswer
 

zaobisgero a écrit :


Je ne vous donnerai bien sûr pas la solution car, et d'une, vous vous en foutez, et de deux vous vous la jouez un peu de trop à mon goût.


 
[:mlc] super l'entraide, merci...
 
edit: d'autant que j'ai rien lu d'agressif ici, alors calmes toi hein [:spamafote]


Message édité par uriel le 23-07-2004 à 13:06:33

---------------
IVG en france
n°804341
kadreg
profil: Utilisateur
Posté le 23-07-2004 à 13:08:09  profilanswer
 

on dawate [:uriel]


---------------
brisez les rêves des gens, il en restera toujours quelque chose...  -- laissez moi troller sur discu !
n°804355
drasche
Posté le 23-07-2004 à 13:24:08  profilanswer
 

zaobisgero a écrit :

P.S: Il faut respecter les gens si vous voulez qu'on vous respecte...


En affichant du mépris non seulement pour ceux qui t'ont aidé mais aussi ceux qui pourraient avoir un problème semblable au tien et lire ce topic, penses-tu vraiment être meilleur que ceux que tu prétends juger? Je ne le crois pas.
 
D'autre part, personne sinon toi n'a été aggressif sur ce topic...


---------------
Whichever format the fan may want to listen is fine with us – vinyl, wax cylinders, shellac, 8-track, iPod, cloud storage, cranial implants – just as long as it’s loud and rockin' (Billy Gibbons, ZZ Top)
n°804366
jagstang
Pa Capona ಠ_ಠ
Posté le 23-07-2004 à 13:33:11  profilanswer
 

zaobisgero a écrit :

J'ai trouvé la solution. Merci quand même d'avoir essayé, mais pour votre gouverne, il faut utiliser les sockets!
Je ne vous donnerai bien sûr pas la solution car, et d'une, vous vous en foutez, et de deux vous vous la jouez un peu de trop à mon goût. Sur ceux, sachez que c'est la dernière fois que je me promène sur un forum de ce genre où on ne trouve que des types qui passent leur temps à casser les nouveaux messages. Adieu messieurs et sachez que vous n'êtes pas des "ELUS" parce que vous êtes derrière un PC... vous n'êtes pas Neo!!! "Bienvenu dans le monde réel".
[Message terminé!]
 
P.S: Il faut respecter les gens si vous voulez qu'on vous respecte...


 
alors  :hello: ,tu vas nous manquer. Sinon j'espère que c'est la dernière fois qu'on croise un gus comme toi sur le forum [:itm]
 


---------------
What if I were smiling and running into your arms? Would you see then what I see now?  
n°804383
Loom the G​loom
Even coders get the blues...
Posté le 23-07-2004 à 13:42:59  profilanswer
 

[:dawacube]


---------------
Music|Market|Feed|Loom|DVD
mood
Publicité
Posté le   profilanswer
 


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  Java

  requêtes CGI

 

Sujets relatifs
Du temps réel online avec Perl : CGI forcément ?Pb de requetes php/mysql et classement
requetes équivalentesrequetes imbriquées en SQL avec mysql
Interdire des requêtes dans un input...[RESOLU][PHP] Exécuter un fichier PHP dans cgi-bin ???
pb de requetes prenant du tempsProblème de requetes SQL
[Résolu] CGI - Comment récupérer le MIME ?JAVA : Erreur avec 2 requêtes imbriquées :'-|
Plus de sujets relatifs à : requêtes CGI


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR