http://www.im286.com/viewthread.php?tid=1550010&extra=page%3D1
En realidad, este tema se ha discutido n Times
Care4 también se ha mencionado dos veces, por lo que si tiene algún problema, es mejor buscar primero, tal vez alguien haya resuelto el problema
http://www.im286.com/viewthread. ...; destacado =%2bcare4
http://www.im286.com/viewthread. ...; destacado =%2bcare4
Una pequeña desventaja del código de Care4 es que requiere componentes.
El primero es el componente .NET 2, pero siempre no es conveniente usar componentes. ¿Hay alguna forma de obtener ASP directamente?
Hay una respuesta
Escribí un código Winsock Simple VB para obtener
http://www.im286.com/viewthread. ... t = respuesta. Redirección
En ese momento, dije que no podía conseguirlo con ASP, porque no fui a CSSDN en ese momento, y ahora he terminado.
Primero debemos entender por qué el componente XMLHTTP no puede obtener dicha dirección de salto
Use respuesta. Redirect para saltar, y PHP es encabezado ("ubicación", $ url);
El principio de ambos métodos es el mismo, que es agregar un campo de ubicación al encabezado HTTP de salida
Al mismo tiempo, establezca el valor de estado HTTP devuelto en 302, y el navegador considerará que la página solicitada actualmente ha sido
Movido a la ruta especificada por la ubicación
Entonces, ¿por qué no se puede obtener XMLHTTP?
La razón es muy simple
El componente XMLHTTP es demasiado inteligente cuando se procesa 302 mensajes que contienen encabezados de ubicación, por lo que salta directamente a la última página, lo que significa que no podemos ver el proceso intermedio. ¡Bill es inteligente!
Afortunadamente, MSXML4 proporciona un nuevo componente disponible: winhttp.winhttprequest.5.1, que también es el núcleo del componente MSXML4 XMLHTTP. Winhttp.winhttprequest tiene una propiedad muy crítica: la opción. El sexto índice de esta propiedad indica si saltará automáticamente. Luego, puede usar fácilmente los métodos GetResponseHeader y GetAllResponseHeaders del componente XMLHTTP para obtener la información del encabezado HTTP devuelta.
Ok, veamos el código a continuación
Dim ohttp
Establecer ohttp = server.createObject ("winhttp.winhttprequest.5.1"
OHTTP.OPTION (6) = 0 'Se prohíbe la redirección automática, lo más importante es simplemente leer los datos, se estima que todos lo harán.
ohttp.setTimeOuts 5000,5000,30000,5000'Spiat Tiempo de tiempo ~ igual que el componente ServerXMLHTTP
ohttp.open "Get", Surl, False 'Abra la URL en modo sincrónico
Si ohttp.status <> 200 y ohttp.status <> 302 entonces
'Ohttp.status correspondiente al estado HTTP devuelto. Si es 200, significa que esta es la página final y no hay salto de ubicación
'Si es 302, significa que la URL de la solicitud actual se ha movido y debe redirigirse de acuerdo con el encabezado HTTP.
'Básicamente no manejamos los estados con otros valores numéricos, ¡pero puede manejarlos como 440 u otros estados usted mismo!
Demás
'El encabezado HTTP devuelto y el contenido del documento se procesan aquí
Final si
Bueno, el código completo es más largo
Lo pasé al espacio para verlo yo mismo
http://test.aymtv.com/url.asp
El código en la barra de entrada predeterminada es una dirección de descarga de CRSKY. Puedes probarlo y saberlo
¡Haga clic para ver el código fuente para ver el código fuente de este archivo ASP!
Todo se hace por encima. Continúa ir a CSDN y mezclarte
Código completo: