2017-08-20 2 views
0

J'écris un code pour passer l'authentification à un site Web basé sur l'API. J'ai la clé d'API dont le site a besoin pendant le processus de connexion. Lorsque j'appelle la méthode de connexion avec la clé API, elle est censée rediriger vers une URL prédéfinie dont le paramètre contiendra alors le jeton de requête.Obtenir l'URL de redirection finale

par exemple le tir l'URL dans le navigateur, https://kite.trade/connect/login?api_key=hcwmefsivttbchla

Je suis redirigé vers

https://impacted-purposes.000webhostapp.com/?status=success&request_token=nb0vrfota9ott1r02q153pk3422joruf (Le jeton de demande changera à chaque course)

Notez que le jeton de demande dans l'URL sur l'URL redirigée. C'est ce que je dois obtenir du code.

Alors, j'utiliser un code qui est mentionné ici GetFinalRedirect: Getting the Redirected URL from the Original URL

ie. J'appelle:

GetFinalRedirect("https://kite.trade/connect/login?api_key=hcwmefsivttbchla") 

Cependant, je n'obtiens pas la redirection finale. Je comprends qu'il pourrait y avoir une redirection Javascript, mais en vérifiant la réponse, ne le suggère pas.

Toute aide est requise pour obtenir l'URL finale afin que je puisse analyser le jeton de demande.

Répondre

0

Eh bien, je ne peux pas le tester puisque je n'ai pas de compte. Et j'espère que ce n'est pas votre vrai-api-clé ...

Mais la fonction que vous utilisez est juste d'envoyer une requête HEAD au serveur. Une demande HEAD n'a pas de réponse. Avec la demande HEAD, vous obtiendrez uniquement les redirections incluses dans les en-têtes HTTP. Si la redirection est faite avec des balises HTML-META ou avec javascript, vous devez envoyer une requête GET (ou POST) ...

Si cela échoue également, définissez un point d'arrêt dans la fonction et regardez les en-têtes http et le texte de réponse ...

+0

Merci. Oui, il s'agit de la vraie clé de l'API et il est possible de la publier en toute sécurité puisqu'il y a une authentification de deuxième étape qui attend d'autres clés (en particulier une clé secrète) hors du problème actuel. Vous pouvez le vérifier avec ceci. J'avais changé l'en-tête à GET plus tôt, obtenu la page réelle, vérifié les balises META et toutes les redirections JS, ne pouvait pas trouver. Toute aide sera grandement appréciée. – Kallol

+0

@Kallol Je suis désolé, mais je ne vois aucun moyen de vérifier cela. Si j'ouvre le premier lien que vous avez posté (kite.trade) un formulaire de connexion s'affiche et je n'ai pas de compte pour me connecter et vérifier le fonctionnement de la redirection ... – Michael

+0

@Kallol Avez-vous réglé '.AllowAutoRedirect' sur' false '? https://msdn.microsoft.com/de-de/library/system.net.httpwebrequest.allowautoredirect(v=vs.110).aspx – Michael