http://www.im286.com/viewthread.php?tid=1550010&extra=page%3D1
Na verdade, esse problema foi discutido n vezes
Care4 também foi mencionado duas vezes; portanto, se você tiver algum problema, é melhor pesquisar primeiro, talvez alguém tenha resolvido o problema
http://www.im286.com/viewthread. ...; Destaque =%2bcare4
http://www.im286.com/viewthread. ...; Destaque =%2bcare4
Uma pequena desvantagem do código do Care4 é que ele requer componentes.
O primeiro é .NET Component 2, mas sempre não é conveniente usar componentes. Existe alguma maneira de obter diretamente o ASP?
Há uma resposta
Eu escrevi um código de winsock simples do VB para obter
http://www.im286.com/viewthread. ... t = resposta.Redirect
Naquela época, eu disse que não conseguia obtê -lo com o ASP, porque não fui para o CSSDN naquele momento, e agora terminei.
Primeiro, precisamos entender por que o componente XMLHTTP não pode obter um endereço de salto
Use Response.Redirect to Jump, e o PHP é cabeçalho ("Localização", $ url);
O princípio de ambos os métodos é o mesmo, que é adicionar um campo de localização ao cabeçalho HTTP de saída
Ao mesmo tempo, defina o valor de status HTTP retornado como 302, e o navegador considerará que a página atualmente solicitada foi
Movido para o caminho especificado pelo local
Então, por que o XMLHTTP não pode ser obtido?
O motivo é muito simples
O componente XMLHTTP é muito inteligente ao processar 302 mensagens que contêm cabeçalhos de localização, por isso salta diretamente para a última página, o que significa que não podemos ver o processo intermediário! Bill é inteligente!
Felizmente, o msxml4 fornece um novo componente disponível: WINHTTP.WINHTTPREQUEST.5.1, que também é o núcleo do componente Msxml4 XMLHTTP. WINHTTP.WINHTTPREQUEST possui uma propriedade muito crítica: opção. O sexto índice desta propriedade indica se ela irá automaticamente saltar. Em seguida, você pode usar facilmente os métodos GetResponseHeader e GetAllResponseHeaders do componente XMLHTTP para obter as informações de cabeçalho HTTP retornadas.
Ok, vejamos o código a seguir
Dim Ohttp
Definir Ohttp = server.createObject ("WINHTTP.WINHTTPREQUEST.5.1"
OHTTP.Option (6) = 0 'O redirecionamento automático é proibido, o mais importante é simplesmente ler os dados, estima -se que todos o façam.
ohttp.setTimeouts 5000.5000.30000.5000'set Timeout ~ o mesmo que o componente ServerxmlHttp
ohttp.open "get", surl, false 'Open URL no modo síncrono
Se ohttp.status <> 200 e ohttp.status <> 302 então
'Ohttp.status correspondente ao status HTTP retornado. Se for 200, significa que esta é a página final e não há salto de localização
'Se for 302, significa que o URL da solicitação atual foi movido e precisa ser redirecionado de acordo com o cabeçalho HTTP.
'Basicamente, não lidamos com estados com outros valores numéricos, mas você pode lidar com eles como 440 ou outros estados sozinho!
Outro
'O cabeçalho HTTP retornado e o conteúdo do documento são processados aqui
Final se
Bem, o código completo é mais longo
Eu passei para o espaço para ver sozinho
http://test.aymtv.com/url.asp
O código na barra de entrada padrão é um endereço de download do Crsky. Você pode testá -lo e saber
Clique para visualizar o código -fonte para ver o código -fonte deste arquivo ASP!
Tudo é feito. Continue indo para o CSDN e se misture
Código completo: