Je suis en train de réécrire un exemple de code pour accéder à l'API d'un magasin Web de Java en ASP classique. Le code Java fonctionne, il envoie des requêtes et les bons résultats sont renvoyés. Le code ASP fait exactement la même chose mais tout ce qu'il fait est de renvoyer une erreur indiquant qu'il y a un problème avec l'autorisation. J'ai vérifié la chaîne de signature de hmac (sha256, base64) mais ceci donne les mêmes résultats que le code de Java. Alors j'ai décidé de vérifier l'apparence réelle des requêtes HTTP et de les comparer les unes avec les autres. Fiddler semblait être un bon choix, mais pour une raison quelconque, les deux requêtes HTTP n'apparaissent pas.Certaines requêtes HTTP n'apparaissent pas dans Fiddler
Beaucoup a déjà été écrit sur ce sujet et j'ai essayé plusieurs choses, mais jusqu'ici pas de chance. Ils décrivent tous le routage de la requête via le proxy Fiddler, qui est localhost: 8888.
J'utilise cet objet dans le code ASP:
Set httpRequest = Server.CreateObject("MSXML2.ServerXMLHTTP.6.0")
Pour IIS 7 (sous Windows 7) le proxy peut être définie dans DOS comme ceci:
netsh winhttp set proxy localhost:8888
Et dans le code comme ce (cela peut ne pas fonctionner dans une autre version de "MSXML2.ServerXMLHTTP" que v6):
httpRequest.setProxy 2, "http=localhost:8888", ""
Le code Java utilise Apache HttpC LIENT, et selon la manual le proxy peut être réglé comme suit:
DefaultHttpClient httpclient = new DefaultHttpClient();
HttpHost proxy = new HttpHost("localhost", 8888);
httpclient.getParams().setParameter(ConnRoutePNames.DEFAULT_PROXY, proxy);
I ajouté ce code au début de la méthode main(). Le code est exécuté dans Eclipse (Juno).
J'ai également ouvert l'adresse proxy (http: // localhost: 8888 /) dans un navigateur, et il me montre la page 'Fiddler Echo Service'. Fiddler est configuré pour afficher "Tous les processus".
Néanmoins, aucune de deux requêtes HTTP n'apparaît. La seule chose qui apparaît est la page ASP que je cours (http: // localhost: 8082/test.asp) qui fait la requête HTTP. Quand j'utilise mon navigateur, d'autres choses apparaissent sur Fiddler, donc je sais que ça fonctionne.
Quelqu'un a-t-il des idées?
Vous êtes sur la bonne voie en définissant la propriété proxy sur l'objet httpRequest.Quelle est l'URL cible que vous essayez de capturer (par exemple, le service est-il également sur Localhost?)? – EricLaw
L'URL cible est une URL sur la boutique en ligne. Parce qu'un message est renvoyé disant que quelque chose ne va pas avec l'authentification, je suppose qu'il n'y a pas de problème là-bas. –