http://www.im286.com/viewthread.php?tid=1550010&extra=page%3D1
En fait, cette question a été discutée n fois
Care4 a également été mentionné deux fois, donc si vous avez des problèmes, il est préférable de rechercher d'abord, peut-être que quelqu'un a résolu le problème
http://www.im286.com/viewthread. ...; highlight =% 2bcare4
http://www.im286.com/viewthread. ...; highlight =% 2bcare4
Un petit inconvénient du code de Care4 est qu'il nécessite des composants.
Le premier est le composant .NET 2, mais il n'est toujours pas pratique d'utiliser des composants. Existe-t-il un moyen d'obtenir ASP directement?
Il y a une réponse
J'ai écrit un code Winsock VB simple pour obtenir
http://www.im286.com/viewthread. ... t = réponse.redirect
À ce moment-là, j'ai dit que je ne pouvais pas l'obtenir avec ASP, parce que je ne suis pas allé au CSSDN à ce moment-là, et maintenant j'en ai fini.
Nous devons d'abord comprendre pourquoi le composant XMLHTTP ne peut pas obtenir une telle adresse de saut
Utilisez Response.Redirect pour sauter, et PHP est en-tête ("emplacement", $ URL);
Le principe des deux méthodes est le même, qui est d'ajouter un champ de localisation à l'en-tête HTTP de sortie
Dans le même temps, définissez la valeur d'état HTTP renvoyée à 302, et le navigateur examinera que la page actuellement demandée a été
Déplacé vers le chemin spécifié par l'emplacement
Alors pourquoi XMLHTTP ne peut-il pas être obtenu?
La raison est très simple
Le composant XMLHTTP est trop intelligent lors du traitement de 302 messages contenant des en-têtes d'emplacement, donc il passe directement à la dernière page, ce qui signifie que nous ne pouvons pas voir le processus intermédiaire! Bill est intelligent!
Heureusement, MSXML4 fournit un nouveau composant disponible: winhttp.winhttprequest.5.1, qui est également le cœur du composant MSXML4 XMLHTTP. Winhttp.winhttpRequest a une propriété très critique: option. Le sixième index de cette propriété indique s'il sautera automatiquement. Ensuite, vous pouvez facilement utiliser les méthodes GetResponseHeader et GetAllResponseHeaders du composant XMLHTTP pour obtenir les informations d'en-tête HTTP renvoyées.
Ok, regardons le code suivant
Sim ohttp
Set ohttp = server.createObject ("winhttp.winhttprequest.5.1"
ohttp.option (6) = 0 'La redirection automatique est interdite, la chose la plus importante est de simplement lire les données, on estime que tout le monde le fera.
ohttp.settimeouts 5000,5000,30000,5000'set timeout ~ Identique au composant serverxmlhttp
ohttp.open "Get", Surl, False 'Open URL en mode synchrone
Si ohttp.status <> 200 et ohttp.status <> 302 alors
«ohttp.status correspondant à l'état HTTP renvoyé. Si c'est 200, cela signifie que c'est la dernière page et qu'il n'y a pas de saut d'emplacement
«S'il est 302, cela signifie que l'URL de la demande actuelle a été déplacée et doit être redirigée en fonction de l'en-tête HTTP.
«Nous ne gérons pas les états avec d'autres valeurs numériques, mais vous pouvez les gérer par vous-même comme 440 ou d'autres états!
Autre
«L'en-tête HTTP retourné et le contenu du document sont traités ici
Terminer si
Eh bien, le code complet est plus long
Je l'ai passé à l'espace pour le voir moi-même
http://test.aymtv.com/url.asp
Le code dans la barre d'entrée par défaut est une adresse de téléchargement de Crsky. Vous pouvez le tester et le savoir
Cliquez pour afficher le code source pour voir le code source de ce fichier ASP!
Tout est fait. Continuez à aller au CSDN et à vous mélanger
Code complet: