Bonjour à tous,
Voila j'essaye de configurer par Ethernet un petit module réseau autonome. Pour cela, le fabricant a prévu de pouvoir utiliser des commandes XML / HTTP.
J'ai donc fait un petit prog largement basé sur celui fourni dans l'aide C++Buider (5, je précise).
Je doit envoyer (par exemple) :
<rci_request version="1.1">
<reboot/>
</rci_request>
J'ai donc écrit :
où Edit1->Text contiendra l'adresse web de l'appareil (il dispose d'un webserver, en plus l'adresse à atteindre pour faire ce truc est écrite dans la doc de l'appareil), et Memo5 le code XML que je dois envoyer (et que j'ai écrit plus haut)
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11 //-------------------------------------------------------- void __fastcall TForm1::Button6Click(TObject *Sender) { AnsiString S; S = Memo5->Lines->Text; if (S != NULL) { NMHTTP1->Post(Edit1->Text, S); } } //--------------------------------------------------------
il y a besoin d'une authentification, donc :
J'ai ajouté les évenement sur réussite et sur erreur, et quand je teste le prog ma commande est bien envoyée par HTTP (vérifié avec un sniffeur ethernet) et en plus tous les évènements sont réussis.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11 //-------------------------------------------------------- void __fastcall TForm1::NMHTTP1AuthenticationNeeded(TObject *Sender) { AnsiString AnID, APass; InputQuery("Authentification nécessaire", "Entrez votre ID utilisateur", AnID); InputQuery("Authentification nécessaire", "Entrez votre mot de passe", APass); NMHTTP1->HeaderInfo->UserId = AnID; NMHTTP1->HeaderInfo->Password = APass; ShowMessage("Informations d'authentification définies, recommencez la dernière commande"); } //--------------------------------------------------------
Mais là ou je comprend plus rien, c'est que l'appareil me renvoie une trame HTTP 1.1 OK (avec du blabla derrière) mais pas de reboot ni rien. Apparement le composant NMHTTP Borland C++ 5 n'est que HTTP 1.0, cela peut poser un problème ? Ou alors c'est un autre évenement qu'il faut gérer ? Où alors c'est un problème XML ? Il parait qu'il faut un certain nombre de retour à la ligne bien précis...
C'est une question qui frise le bi-topic, mais je la mets là quand même pour voir si les fana de borland connaissent le problème.
merci d'avance, à+
Partager