Bonjour,
Ma problématique est la suivante : dans un morceau de code, passer une instruction (=reboot) au programme (=webshell) d'un appareil via une url ; dans une version antérieure de ce programme, passer une instruction se faisait sans authentification et l'url http://xx.xxx.xxx.xxx/printer/webshell?reboot produisait effectivement le comportement attendu.
La version récente de ce programme requière une identification. Pour tester on renseigne la barre d'adresse d'un navigateur web avec l'url, et une fenêtre d'identification apparait effectivement ; si identification validée, le reboot se produit ensuite.
le code suivant produit l'url
J'ai tenté d'écrire l'url "http://username@password" + bi.getAdresseIP() + "/printer/webshell?reboot"; sans résultat:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8 urlAppareil = "http://" + bi.getAdresseIP() + "/printer/webshell?reboot"; URL urli = new URL(urlAppareil); URLConnection urlcon = urli.openConnection(); urlcon.setRequestProperty("Method","POST"); urlcon.setDoOutput(true); urlcon.setDoInput(true); urlcon.setUseCaches(false); urlcon.connect();
l'erreur logée est dans les 2 cas (avec et sans les id):
java.io.IOException: Server returned HTTP response code: 401 for URL:http://xx.xxx.xxx.xxx/printer/webshell?reboot
java.io.IOException: Server returned HTTP response code: 401 for URL: http://toto:passtoto@xx.xxx.xxx.xxx/printer/webshell?reboot
Si cette url est passée dans la barre d'adresse de I.E, erreur de page, (bon, c'est du I.E et un bridage est paramétré, d'après ce que j'ai pu lire). Avec FireFox, la commande est exécutée. Donc la syntaxe qui consiste à passer les identifiants sous la forme "http://username:password@adresseip/etc" fonctionne, dans que l'url est exécuté par un browser.
Ma question : quel autre moyen existe-t-il de passer en http des identifiants à un programme ?
N.B ma problématique ressemble à celle du post http://www.developpez.net/forums/d41...tomatiquement/, mais la solution ne convient pas
Partager