Comment puis-je fournir un nom d'utilisateur/mot de passe pour accéder à une ressource web à l'aide de Matlab urlread/urlwrite?
La suite de cette question, concernant l'accès à un fichier PDF sur une page web à l'aide de Matlab, qui est à l'origine cachée derrière une fonction Javascript. J'ai maintenant un URL, ce qui me permet d'accéder directement à la page, cela fonctionne ok à l'aide de l'Matlab webrowser objet (le fichier PDF s'affiche sur l'écran), mais pour enregistrer le fichier PDF pour un traitement ultérieur, il semble que je besoin pour utiliser le logiciel Matlab urlread/urlwrite fonctions. Cependant, ces fonctions permettent pas de méthode pour offrir des informations d'authentification.
Comment dois-je fournir de nom d'utilisateur/mot de passe pour Matlab urlread/urlwrite fonctions?
OriginalL'auteur Ian Hopkinson | 2009-08-23
Vous devez vous connecter pour publier un commentaire.
Matlab urlread() est la fonction d'un "params" argument, mais ce sont des CGI-paramètres de style qui codé dans l'URL. L'authentification se fait avec faible niveau de la Demande HTTP paramètres. Urlread ne prend pas en charge ces, mais vous pouvez coder directement à l'encontre de la Java URL de la classe à utiliser.
Vous pouvez également utiliser un Soleil de soleil.misc.BASE64Encoder classe pour faire le codage en Base 64 de la programmation. C'est un non-standard de la classe, pas partie de la norme bibliothèque Java, mais vous savez que la JVM de l'expédition avec Matlab aura, de sorte que vous pouvez vous en sortir avec le codage.
Voici un petit hack montrant en action.
Neat - je n'avais pas réalisé qu'il était si simple de faire le codage Base64. Plans en attente car je ne pense pas que le sysadmin apprécié mon peu orthodoxe méthodes d'accès - maintenant, au lieu d'un fichier pdf, je reçois un "Ne pas faire" de la page HTML! Ce qui est assez juste vraiment, commutation de la diplomatie mode 😳
OriginalL'auteur Andrew Janke
urlwrite_auth est la prochaine étape, si elle est ici...
Note c'est un développement de la réponse d'Andrew pour télécharger des fichiers depuis un serveur http nom d'utilisateur et le mot de passe du site.
OriginalL'auteur Kerry
Il s'avère que le site intranet est l'aide de l'authentification de base, ce qui n'est pas pris en charge par Matlab out-of-the-box, mais il existe une solution de contournement décrite sur le site de Mathworks ici qui fonctionne très bien. Dans le premier exemple que j'ai utilisé Firebug me la chaîne encodée en Base64 j'avais besoin pour l'accès, mais j'ai aussi fait un calcul direct à l'aide de l'outil ici. Maintenant j'ai enregistré mon fichier PDF du rapport de disque de travail à faire. Pour mon prochain truc que je vais être de le convertir en texte...
Ma compréhension est que les méthodes get et post sont distinctes de la méthode d'authentification de base, mais que l'authentification de base n'est pas souvent utilisé sur le net.
OriginalL'auteur Ian Hopkinson
Une mise à jour de cette: une autre option est la nouvelle fonction
webread
que vous pouvez donner explicitement le nom d'utilisateur et le mot de passe pour la base de authenticaition.Cela peut aussi être utilisé pour
websave
ouwebwrite
. Plus d'infos surweboptions
iciOriginalL'auteur user3312395
Je ne sais pas matlab, c'est juste une supposition éclairée.
La documentation des fonctions ici répertorie les options de la manière suivante:
Selon le type d'authentification qu'ils utilisent cela peut ou peut ne pas fonctionner, vous allez vouloir utiliser une méthode post.
Vous aurez à regarder à la demande de formulaire HTML ou afficher l'onglet réseau de firebug pour voir quel est le véritable nom de la/les valeurs de nom d'utilisateur et mot de passe sont des paramètres.
OriginalL'auteur Brian Gianforcaro