Monday 8 January 2018

Winhttp download binário opção


VBScript arquivo binário http downloader Este script WSH pode baixar um arquivo de um determinado URL e salvá-lo em disco usando um fluxo binário. Para usar o código em uma página ASP em vez de WSH, basta usar as funções BinaryGetURL () e SaveBinaryData () e substituir CreateObject com Server. CreateObject. Dim objArgs Dim strURL Dim strFileName Definir objArgs WScript. Arguments Se objArgs. count 0 Então Wscript. echo (Sintaxe: GetBinary URL nome do arquivo de destino amp vbcrlf amp vbcrlf amp Exemplos: amp vbcrlf amp GetBinary serverfolderfile. zip amp vbcrlf amp GetBinary serverdat. zip c : Dlfile. zip amp vbcrlf amp GetBinary serverfile. dat secure. dat amp vbcrlf amp GetBinary servernews. htm d: dataservernews. html) ElseIf objArgs. count 1 Então strURL objArgs. Item (0) strFileName strURL strFileName Substituir (strFileName,,) strFileName Se strFileName Então strFileName strURL strFileName Substituir (strFileName,,) strFileName Substituir (strFileName,,) strFileName Substituir (strFileName,,) strFileName Substituir (strFileName,,) strFileName Substituir (strFileName,,) End If SalvarBinaryData BinaryGetURL (strURL), strFileName ElseIf objArgs. count 2 Então strURL objArgs. Item (0) strFileName objArgs. Item (1) SaveBinaryData BinaryGetURL (strURL) StrFileName Else Wscript. echo (Demasiados argumentos. Se um caminho contiver espaços, amp por favor coloque aspas em torno dos argumentos.) End If Função BinaryGetURL (strURL) Dim objWinHttp Dim lngTimeout Dim strMethod Dim strPostData Dim strUserAgentString Dim intSslErrorIgnoreFlags Dim blnEnableRedirects Dim blnEnableHttpsToHttpRedirects lngTimeout 59000 milissegundos. strMethod GET strPostData strUserAgentString binarygetter1.0 intSslErrorIgnoreFlags 13056 13056 ignorar todos erram, 0 não aceitar blnEnableRedirects err blnEnableHttpsToHttpRedirects verdadeiro verdadeiro Set objWinHttp CreateObject (WinHttp. WinHttpRequest.5.1) objWinHttp. SetTimeouts lngTimeout, lngTimeout, lngTimeout, lngTimeout objWinHttp. Option (0) strUserAgentString objWinHttp. Option (4) intSslErrorIgnoreFlags objWinHttp. Option (6) blnEnableRedirects objWinHttp. Option (12) blnEnableHttpsToHttpRedirects objWinHttp. Open strMethod, strURL, Falso Se strMethod POST Então objWinHttp. setRequestHeader-tipo conteúdo, forma-ApplicationX-www-urlencoded End If objWinHttp. Enviar (strPostData) Se (objWinHttp. Status 200) Então BinaryGetURL objWinHttp. ResponseBody End If Set objWinHttp Nothing End Function Função SaveBinaryData (arrByteArray, strFileName) Se VarType (arrByteArray) gt 8192 Então Dim objBinaryStream Set objBinaryStream CreateObject (ADODB. Stream) objBinaryStream. Tipo 1 objBinaryStream. Open () ObjBinaryStream. Write (arrByteArray) objBinaryStream. SaveToFile strFileName, 2 End If End FunctionVBScript Exemplo de WinHttp. WinHttpRequest.5.1 com o tratamento de erros Este script de exemplo WSH pode acessar (usando HTTP GET ou POST) o conteúdo texthtmlxml de um determinado URL. Se um tempo limite de conexão WinHttpRequest ou erro ocorre, ou o servidor remoto responde com um erro, os detalhes de erro são retornados em vez do conteúdo. Para usar o código em uma página ASP instead of WSH, substituir Wscript. Echo com Response. Write e CreateObject com Server. CreateObject. (Veja também como fazer o download de um arquivo binário usando uma versão derivada deste código.) Função GetDataFromURL (strURL, strMethod, strPostData) Dim lngTimeout Dim strUserAgentString Dim intSslErrorIgnoreFlags Dim blnEnableRedirects Dim blnEnableHttpsToHttpRedirects Dim strHostOverride Dim strLogin Dim strPassword Dim strResponseText Dim objWinHttp lngTimeout 59000 strUserAgentString httprequester0.1 intSslErrorIgnoreFlags 13056 13056: ignorar todos erram, 0: não aceitar blnEnableRedirects err blnEnableHttpsToHttpRedirects verdadeiro verdadeiro strHostOverride strLogin strPassword Set objWinHttp CreateObject (WinHttp. WinHttpRequest.5.1) objWinHttp. SetTimeouts lngTimeout, lngTimeout, lngTimeout, lngTimeout objWinHttp. Open strMethod, strURL If StrMethod POST Then objWinHttp. setRequestHeader Tipo de conteúdo, applicationx-www-form-urlencoded End If Se strHostOverride ltgt Then objWinHttp. SetRequestHeader Host, strHostOverride End Se objWinHttp. Option (0) strUserAgentString objWinHttp. Option (4) intSsLEr rorIgnoreFlags objWinHttp. Option (6) blnEnableRedirects objWinHttp. Option (12) blnEnableHttpsToHttpRedirects Se (ltgt strLogin) E (ltgt strPassword) Então objWinHttp. SetCredentials strLogin, strPassword, 0 End If On Error Resume Next objWinHttp. Send (strPostData) Se Err. Number 0 Then If objWinHttp. Status 200 Então GetDataFromURL objWinHttp. ResponseText Else GetDataFromURL HTTP amp objWinHttp. Status amp amp objWinHttp. StatusText End If Else GetDataFromURL Erro amp Err. Number amp amp Err. Source amp amp Err. Description Fim Se On Error GoTo 0 Set ObjWinHttp Nothing End FunctionWeb Métodos de download binário Aqui está o método usual de executar um download binário através de HTTP. Ele tenta quatro diferentes binário download capaz objetos, e tem dois métodos separados para salvar o binário para o disco. Bastante à prova de bala: Eu estava brincando e encontrei outras maneiras que você pode usar mal o sistema para fazer um download binário WSC arquivo: Você não tem que registrar arquivos WSC. Em vez disso, você pode especificar sua localização no seu script. Você pode até mesmo especificar uma localização HTTP. O arquivo é baixado automaticamente e acaba no seu cache do IE. Se você especificar algo diferente de um arquivo WSC real como o destino, ele será baixado e executado como um script. Que está indo lançar um erro Assim você apenas obstrui o erro: Em resumo do erro Próximo certificado de GetObject: ericphelpsimagelogo1.gif O código acima é código de VBS ordinário. Nada a ver com arquivos WSC, exceto que o método GetObject com o script: protocolo é NORMALMENTE usado para obter um arquivo WSC. Usamo-lo aqui para obter outra coisa. O código VBS acima irá baixar um gráfico da minha página web e soltá-lo no cache do IE. Para localizar o arquivo no cache, use um código semelhante a este: Na vida real, você deseja pesquisar o cache FIRST, excluir todas as correspondências encontradas e, em seguida, fazer o download do arquivo desejado. Então tudo o que você encontrar no cache é a certeza de ser o que você quer. WSF arquivo: Se você escrever o seu código VBS em arquivos WSH em vez de em arquivos VBS, você começa a especificar muito mais opções. Infelizmente, isso bloqueia todo o arquivo WSF, então você precisa ter seu arquivo VBS criar ou usar um arquivo WSF como o acima e executá-lo com wsh. Run ou wsh Logged. Exec para que seu código principal sobreviva. Tente algo como este código VBS: É importante que o wsh. Run acontecer com o CSCRIPT. EXE como o mecanismo em execução e que ele é executado com zero como o tipo de janela. Quando o arquivo WSF lança seu erro, se o mecanismo fosse wscript, apareceria uma caixa de diálogo de erro. Isso é ruim. Usando o mecanismo cscript, o erro só fica escrito na caixa do DOS. E, definindo o tipo de janela para zero, ninguém ainda vê a caixa do DOS. E com certeza, o arquivo logo1.gif apareceria no seu cache do IE. Mais uma vez, uma vez que o arquivo está em você cache, use código semelhante ao FindInCache e funções SearchForFile eu mostrei acima para mencionado acima para localizar o arquivo.

No comments:

Post a Comment