VBScript archivo binario http descargador Este script WSH puede descargar un archivo de una determinada URL y guardarlo en el disco utilizando un flujo binario. Para utilizar el código en una página ASP en lugar de WSH, sólo tiene que utilizar las funciones BinaryGetURL () y SaveBinaryData () y reemplazarlo con CreateObject Server. CreateObject. Dim Dim objArgs strURL Dim strFileName Set objArgs WScript. Arguments Si objArgs. count 0 Luego Wscript. Echo (Sintaxis: getBinary URL nombre de archivo de destino amp amp vbcrlf vbcrlf amp Ejemplos: amp amp vbcrlf getBinary servidor / carpeta / file. zip amp amp vbcrlf getBinary servidor / dat. zip c: dlfile. zip amp amp vbcrlf getBinary servidor / archivo. dat secure. dat amp amp vbcrlf getBinary d servidor / news. htm: dataservernews. html) ElseIf objArgs. count 1 Entonces strURL objArgs. Item (0) strFileName strURL strFileName Reemplazar (strFileName,, /) strFileName Reemplazar (strFileName, amplificador, /) strFileName Reemplazar (strFileName,, /) strFileName derecha (strFileName, Len (strFileName) - InStrRev (strFileName, /)) Si strFileName Entonces strFileName strURL strFileName Reemplazar (strFileName,,) strFileName Reemplazar (strFileName,,) strFileName Reemplazar (strFileName, /,) End If SaveBinaryData BinaryGetURL (strURL), strFileName ElseIf objArgs. count 2 Entonces strURL objArgs. Item (0) strFileName objArgs. Item (1) SaveBinaryData BinaryGetURL (strURL), strFileName Else Wscript. echo (Demasiados argumentos. Si una ruta contiene espacios, amperio por favor ponga comillas alrededor de los argumentos.) End If Función BinaryGetURL (strURL) Dim Dim objWinHttp lngTimeout Dim Dim strMethod strPostData Dim Dim strUserAgentString intSslErrorIgnoreFlags Dim Dim blnEnableRedirects blnEnableHttpsToHttpRedirects lngTimeout 59000 milisegundos. strMethod GET strPostData strUserAgentString binarygetter / 1.0 intSslErrorIgnoreFlags 13056 13056 ignorar todos los errar, 0 no aceptar blnEnableRedirects err verdaderos blnEnableHttpsToHttpRedirects True Configura objWinHttp CreateObject (WinHttp. WinHttpRequest.5.1) objWinHttp. SetTimeouts lngTimeout, lngTimeout, lngTimeout, lngTimeout objWinHttp. Option (0) strUserAgentString objWinHttp. Opción (4) intSslErrorIgnoreFlags objWinHttp. Option (6) blnEnableRedirects objWinHttp. Option (12) blnEnableHttpsToHttpRedirects objWinHttp. Open strMethod, strURL, Falso Si la POST strMethod Entonces objWinHttp. setRequestHeader Content-type, application / x-www-form-urlencoded End If objWinHttp. Send (strPostData) Si (objWinHttp. Status 200) Entonces BinaryGetURL objWinHttp. ResponseBody End If Set objWinHttp Nada End Function Función SaveBinaryData (arrByteArray, strFileName) Si VarType (arrByteArray) gt 8192 Entonces Dim objBinaryStream Conjunto objBinaryStream CreateObject (ADODB. Stream) objBinaryStream. Type 1 objBinaryStream. Open () objBinaryStream. Write (arrByteArray) objBinaryStream. SaveToFile strFileName, 2 End If End Function Tag ejemplo cloudVBScript WinHttp. WinHttpRequest.5.1 con el manejo de errores Este script de ejemplo WSH puede acceder (mediante HTTP GET o POST) del Text / html / xml contenidos de una URL determinada. Si se produce un error o un tiempo de espera de conexión WinHttpRequest o el servidor remoto responde con un error, se devuelven los detalles de error en lugar del contenido. Para utilizar el código en una página ASP en lugar de WSH, reemplace Wscript. Echo con Response. Write y CreateObject con Server. CreateObject. (Véase también la forma de descargar un archivo binario utilizando una versión derivada de este código.) Función 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 httprequester / 0.1 intSslErrorIgnoreFlags 13056 13056: ignorar todos los errar, 0: no acepte ninguna blnEnableRedirects err verdaderos blnEnableHttpsToHttpRedirects verdadera strHostOverride strLogin strPassword Conjunto objWinHttp CreateObject (WinHttp. WinHttpRequest.5.1) objWinHttp. SetTimeouts lngTimeout, lngTimeout, lngTimeout, lngTimeout objWinHttp. Open strMethod, strURL If strMethod la POST Luego objWinHttp. setRequestHeader Content-type, Fin urlencoded-x-www-formulario de solicitud / Si Si strHostOverride ltgt anfitrión Entonces objWinHttp. SetRequestHeader, strHostOverride Fin Si objWinHttp. Option (0) strUserAgentString objWinHttp. Option (4) intSslErrorIgnoreFlags objWinHttp. Option (6) blnEnableRedirects objWinHttp. Option (12) blnEnableHttpsToHttpRedirects Si (ltgt strLogin) Y (strPassword ltgt) Entonces objWinHttp. SetCredentials strLogin, strPassword, 0 End If On Error Resume Next objWinHttp. Send (strPostData) Si Err. Number 0 Entonces Si objWinHttp. status 200 Entonces GetDataFromURL objWinHttp. ResponseText Else GetDataFromURL HTTP amp amp amp objWinHttp. Status objWinHttp. StatusText End If Else amplificador de error GetDataFromURL Err. Number amp amp amp amp Err. Source Err. Description Función End If On Error GoTo 0 Conjunto objWinHttp Nothing End tag cloudUsing VB y WinHttp. WinHttpRequest.5.1, que necesitan para automatizar la descarga de un archivo binario para los usuarios que reside en un recurso compartido de red, lo que requiere autenticación SSO, sin codificar o que requieren que el usuario introduzca su contraseña. He estado revisando las soluciones en la web por un tiempo y el VB siguiente es el más cercano que he recibido. Tengo problemas con los redireccionamientos múltiples, que estoy descargando en lugar del archivo. La descarga resultante sigue siendo una página de redireccionamiento WSSO no el archivo. Preguntó 21 de febrero a las 22:13 Jules - gracias por la sugerencia. Descubrí que en realidad estoy descargando la segunda / última página de redirección justo antes de la solicitud de descarga de archivos, si navego a través del navegador. Por lo tanto, la autenticación parece funcionar. Esta página se supone que ejecuta 39WSSORedirect () 39. ¿Cómo puedo descargar el archivo en lugar de la página de redireccionamiento HTML ¿Necesito activar la descarga de alguna manera? No es un archivo grande, por lo que incluso con un retraso, no llega. Ndash macarius feb 22 en 23:47
No comments:
Post a Comment