roUrlTransfer
18 min
este objeto se utiliza para leer y escribir en servidores remotos a través de url informa el estado de la transferencia mediante el objeto rourlevent object brightsign habilita los protocolos http //, https //, ftp\ //, y file // el equivalente en javascript es http creación del objeto este objeto se crea sin parámetros createobject("rourltransfer") debe crear una instancia separada de rourltransfer para cada recurso que desee leer o escribir ifuserdata setuserdata(user data as object) establece los datos de usuario que se devolverán cuando se generen eventos getuserdata() as object devuelve los datos de usuario que se establecieron previamente mediante setuserdata() devolverá inválido si no se ha establecido ningún dato ifidentity getidentity() as integer devuelve un número único que puede utilizarse para identificar cuándo los eventos se originan en este objeto la interfaz ifidentity ha quedado obsoleta recomendamos utilizar la interfaz ifuserdata en su lugar ifmessageport setport(port as romessageport) as void establece el puerto de mensajes al que se enviarán eventos para solicitudes asíncronas ifurltransfer establecerurl(url como cadena) como booleano establece la url para la solicitud de transferencia esta función devuelve false en caso de error use getfailurereason para conocer el motivo del error addheader(name as string, value as string) as boolean agrega el encabezado http especificado esto solo es válido para url http esta función devuelve false en caso de error use getfailurereason() para conocer el motivo del error gettostring() as string se conecta al servicio remoto según lo especificado en la url y devuelve el cuerpo de la respuesta como una cadena esta función no puede devolver un resultado hasta que el intercambio se complete y puede bloquearse durante mucho tiempo tener una única cadena de retorno significa que gran parte de la información (encabezados, códigos de respuesta) se ha descartado si necesita esta información, puede utilizar asyncgettostring() en su lugar el tamaño de la cadena devuelta está limitado a 65 536 caracteres gettofile(filename as string) as integer se conecta al servicio remoto según lo especificado en la url y escribe el cuerpo de la respuesta en el archivo especificado esta función no devuelve un resultado hasta que el intercambio se complete y puede bloquearse durante mucho tiempo se devuelve el código de respuesta del servidor no es posible acceder a ninguno de los encabezados de respuesta si necesita esta información, utilice asyncgettofile() en su lugar asyncgettostring() as boolean inicia una solicitud get a una cadena de forma asíncrona los eventos se enviarán al puerto de mensajes asociado con el objeto si se devuelve falso , entonces la solicitud no pudo emitirse y no se entregará ningún evento asyncgettofile(filename as string) as boolean inicia una solicitud get a un archivo de forma asíncrona los eventos se enviarán al puerto de mensajes asociado con el objeto si se devuelve falso , entonces la solicitud no pudo emitirse y no se entregará ningún evento enableresume(enable as boolean) as boolean especifica el comportamiento de creación de archivos de los métodos gettofile() y asyncgettofile() si este método se establece en falso (la configuración predeterminada), cada descarga generará un archivo temporal si la descarga se realiza correctamente, el archivo temporal se renombrará con el nombre de archivo especificado; si la descarga falla, el archivo temporal se eliminará si este método se establece en true, el archivo con el nombre de archivo especificado se creará independientemente de si la descarga se realiza correctamente o no; esto permite que la descarga se reanude mediante una llamada posterior a gettofile() o asyncgettofile() head() como objeto realiza de forma síncrona una solicitud http head y devuelve el código de respuesta y los encabezados resultantes mediante un objeto rourlevent en caso de una falla catastrófica (por ejemplo, una operación asíncrona ya está activa), se devuelve un objeto nulo asynchead() as boolean inicia una solicitud http head asíncrona los eventos se enviarán al puerto de mensajes asociado con el objeto si la solicitud no pudo emitirse, el método devolverá falso y no entregará ningún evento postfromstring(request as string) as integer utiliza el método http post para publicar la cadena proporcionada en la url actual y devolver el código de respuesta cualquier cuerpo de respuesta se descarta postfromfile(filename as string) as integer utiliza el método http post para publicar el contenido del archivo especificado en la url actual y luego devolver el código de respuesta cualquier cuerpo de respuesta se descarta asyncpostfromstring(request as string) as boolean utiliza el método http post para publicar la cadena proporcionada en la url actual los eventos de tipo rourlevent se enviarán al puerto de mensajes asociado con el objeto un valor de falso indica que la solicitud no pudo emitirse y no se entregarán eventos asyncpostfromfile(filename as string) as boolean utiliza el método http post para publicar el contenido del archivo especificado en la url actual los eventos del tipo rourlevent se enviarán al puerto de mensajes asociado con el objeto un valor de falso indica que la solicitud no pudo emitirse y no se entregarán eventos establecerusuarioycontraseña(usuario as string, contraseña as string) as boolean habilita la autenticación http utilizando el nombre de usuario y la contraseña especificados tenga en cuenta que la autenticación básica http está deliberadamente deshabilitada debido a que es inherentemente insegura la autenticación digest http es compatible setmaximumreceivebytespersecond(bytes per second as double) as boolean limita la velocidad a la que las descargas se realizan mediante la instancia rourltransfer la velocidad de datos de origen no está bajo el control directo del reproductor brightsign, pero las velocidades de descarga deberían promediar por debajo del valor especificado con el tiempo este método devuelve true en caso de éxito y falso en caso de error en caso de error, el método getfailurereason() puede proporcionar más información setmaximumsendbytespersecond(bytes per second as double) as boolean limita la velocidad a la que las cargas se realizan mediante la instancia rourltransfer este método devuelve verdadero en caso de éxito y falso en caso de error en caso de error, el método getfailurereason() puede proporcionar más información setminimumtransferrate(bytes per second as integer, period in seconds as integer) as boolean hace que la transferencia se termine si la velocidad cae por debajo de bytes por segundo cuando se promedia durante period in seconds tenga en cuenta que si la transferencia se realiza a través de internet, es posible que no quiera establecer period in seconds en un número pequeño en caso de que problemas de red causen caídas temporales en el rendimiento para transferencias de archivos grandes y un límite pequeño de bytes por segundo , podría ser apropiado promediar durante quince minutos o más getfailurereason() como cadena puede proporcionar información adicional si alguno de los métodos de rourltransfer indica un error setheaders(a as object) as boolean asyncgettoobject(type as string) as boolean inicia una solicitud get asíncrona y utiliza el contenido para crear un objeto del tipo especificado los eventos se enviarán al puerto de mensajes asociado con el objeto si este método devuelve false, la solicitud no pudo emitirse y no se entregarán eventos los únicos tipos compatibles son rosyncspec y roxmlelement asynccancel() as boolean cancela cualquier solicitud asíncrona pendiente en el objeto rourlevent retainbodyonerror(retener como boolean) como boolean especifica si se debe devolver el cuerpo de la respuesta cuando hay un código de respuesta de error http si retain es true, rourltransfer proporciona el cuerpo y los encabezados de la respuesta incluso si el código de estado http indica que ocurrió un error (por ejemplo, un código de estado 4x o 5xx) si retain es false, rourltransfer no proporciona el cuerpo ni los encabezados de la respuesta si el código de estado http indica que ocurrió un error este método devuelve verdadero en caso de éxito y falso en caso de error el comportamiento predeterminado de rourltransfer es equivalente a pasar falso al método si retainbodyonerror() devuelve falso , llame a getfailurereason() para obtener detalles enableunsafeauthentication(enable as boolean) as boolean admite autenticación básica http si es verdadero la autenticación http utiliza un protocolo inseguro, lo que podría permitir que otros determinen fácilmente la contraseña el objeto rourltransfer seguirá prefiriendo el método digest http más fuerte si es compatible con el servidor si este método es falso (que es la configuración predeterminada), se negará a proporcionar contraseñas mediante autenticación básica http y cualquier solicitud que requiera esta autenticación fallará enableunsafeproxyauthentication(enable as boolean) as boolean admite autenticación http básica contra proxies si es true (lo cual, a diferencia de enableunsafeauthentication() , es la configuración predeterminada) la autenticación http utiliza un protocolo inseguro, lo que podría permitir que otros determinen fácilmente la contraseña si este método es false, se negará a proporcionar contraseñas mediante autenticación http básica, y cualquier solicitud que requiera este tipo de autenticación fallará enablepeerverification(verification as boolean) as boolean habilita la verificación de certificados tls/ssl este método está configurado en verdadero de forma predeterminada deshabilitar la verificación de pares le permite omitir la comprobación de un certificado vencido enablehostverification(verificación as boolean) as boolean habilita la verificación del certificado tls/ssl para el nombre de host correcto este método está configurado en verdadero de forma predeterminada deshabilitar la verificación de host le permite aceptar un certificado enviado para un nombre de host incorrecto la verificación de pares y la verificación de host son comprobaciones de seguridad importantes que previenen ataques de "man in the middle" estas funciones solo deben deshabilitarse después de considerar cuidadosamente las implicaciones de seguridad setcertificatesfile(filename as string) as boolean configura un conjunto alternativo de certificados ca para la conexión este método es útil si los certificados de la conexión están firmados por una ca que no está en la lista de confianza predeterminada (por ejemplo, si su organización utiliza una jerarquía de ca privada que no está firmada por una ca raíz ampliamente conocida) este método reemplaza la lista predeterminada, por lo que el archivo de certificados proporcionado debe contener todos los certificados ca aceptables requeridos para la conexión setclientcertificate(parameters as roassociativearray) as boolean especifica un certificado de cliente https para utilizar con la autenticación del servidor los certificados pkcs#12 no son compatibles este método acepta un arreglo asociativo con los siguientes parámetros certificate file el nombre de archivo del certificado de cliente key file el nombre de archivo del archivo de clave no necesita especificar un archivo de clave si la clave está incrustada en el archivo del certificado de cliente (lo que podría ocurrir al utilizar el formato pem) tipo ya sea "pem" o "der" frase de contraseña la frase de contraseña de cadena que se utilizará si la clave está cifrada obfuscated passphrase la frase de contraseña de cadena ofuscada que se utilizará si la clave está cifrada si alguno de los parámetros se configura incorrectamente, probablemente obtendrá un error 35 al realizar una solicitud setcookie(cookie como cadena) como booleano agrega la cookie especificada al almacenamiento del reproductor y habilita el motor de análisis/envío de cookies la cookie puede ser una sola línea en formato netscape/mozilla o un encabezado estándar de estilo http (es decir, set cookie ) también puede ejecutar comandos pasando estas cadenas exactas al método "all" borra todas las cookies mantenidas en memoria "sess" borra todas las cookies de sesión mantenidas en memoria "reload" carga todas las cookies desde archivos especificados mediante llamadas a setcookiefile() setcookiefile(filename as string) as boolean agrega cookies al almacenamiento del reproductor utilizando el archivo de cookies especificado y habilita el motor de análisis/envío de cookies los datos de cookies pueden estar en formato netscape/mozilla o en formato http estándar getcookies() como rolist devuelve una lista de cadenas de todas las cookies (incluidas las cookies vencidas) enableencodings(enable as boolean) as boolean habilita la compresión http, que comunica al servidor que el sistema puede aceptar cualquier codificación que el objeto rourltransfer sea capaz de decodificar por sí mismo actualmente esto incluye "deflate" y "gzip", que permiten la compresión transparente de las respuestas los clientes de la instancia rourltransfer ven únicamente los datos decodificados y no saben qué codificación se está utilizando la compresión http está habilitada de forma predeterminada en las versiones de firmware 6 0 x y posteriores setuserandpassword(a as string, b as string) as boolean head() como objeto realiza una solicitud http head síncrona y devuelve el código de respuesta y los encabezados resultantes mediante un objeto rourlevent en caso de una falla catastrófica (por ejemplo, una operación asíncrona ya está activa), se devuelve un objeto null escape(unescaped as string) as string convierte la cadena proporcionada en una cadena codificada para url todos los caracteres que podrían malinterpretarse en un contexto de url se convierten a la forma %xx unescape(a as string) as string geturl() as string setproxy(proxy as string) as boolean establece el nombre o la dirección del servidor proxy que será utilizado por la instancia rourltransfer la cadena del proxy debe tener el siguiente formato "http //user\ password\@hostname\ port" puede contener hasta cuatro caracteres " "; cada carácter " " puede utilizarse para reemplazar un octeto de la dirección ip actual por ejemplo, si la dirección ip es actualmente 192 168 1 2 y el proxy está configurado como "proxy ", entonces el reproductor intentará usar un proxy llamado "proxy 192 168" setproxybypass(hostnames as array) as boolean exime a los hosts especificados de la configuración del proxy el array proporcionado debe consistir en uno o más nombres de host el reproductor intentará acceder directamente a los hosts especificados en lugar de usar el proxy que se ha especificado con el método setproxy() por ejemplo, el nombre de host "http //example com " eximiría a "http //example com ", "http //example com 80 ", y "example domain " de la configuración del proxy putfromstring(a as string) as integer utiliza el método http put para escribir la cadena proporcionada en la url actual y devolver el código de respuesta cualquier cuerpo de respuesta se descarta; use rourltransfer syncmethod() para recuperar el cuerpo de la respuesta settimeout(milliseconds as integer) as boolean finaliza la transferencia si la solicitud tarda más que el número especificado de milisegundos tenga en cuenta que esto incluye el tiempo requerido por cualquier búsqueda de nombres, por lo que configurar este valor demasiado bajo causará resultados no deseados pasar 0 al método deshabilita el tiempo de espera este método devuelve verdadero en caso de éxito y falso en caso de error en caso de fallo, usar el método getfailurereason() puede proporcionar más información si la operación agota el tiempo de espera, el estado devuelto es 28 setuseragent(a as string) as boolean putfromfile(a as string) as integer utiliza el método http put para escribir el contenido del archivo especificado en la url actual y devolver el código de respuesta cualquier cuerpo de respuesta se descarta; use rourltransfer syncmethod() para recuperar el cuerpo de la respuesta asyncputfromstring(a as string) as boolean utiliza el método http put para escribir la cadena proporcionada en la url actual los eventos de tipo rourlevent se enviarán al puerto de mensajes asociado con el objeto un valor de retorno falso indica que la solicitud no pudo emitirse y que no se entregarán eventos cualquier cuerpo de respuesta se descarta; use rourltransfer asyncmethod para recuperar el cuerpo de la respuesta asyncputfromfile(a as string) as boolean utiliza el método http put para escribir el contenido del archivo especificado en la url actual los eventos de tipo rourlevent se enviarán al puerto de mensajes asociado con el objeto un valor de retorno false indica que la solicitud no pudo emitirse y que no se entregarán eventos cualquier cuerpo de respuesta se descarta; use rourltransfer asyncmethod() para recuperar el cuerpo de la respuesta delete() as object utiliza el método http delete para eliminar el recurso en la url actual y devolver el código de respuesta cualquier cuerpo de respuesta se descarta; use rourltransfer syncmethod para recuperar el cuerpo de la respuesta asyncdelete() as boolean utiliza el método http delete para eliminar el recurso en la url actual los eventos de tipo rourlevent se enviarán al puerto de mensajes asociado con el objeto un valor de retorno false indica que la solicitud no pudo emitirse y que no se entregarán eventos cualquier cuerpo de respuesta se descarta; use rourltransfer asyncmethod() para recuperar el cuerpo de la respuesta clearheaders() as void elimina todos los encabezados que se proporcionarían con una solicitud http addheaders(a as object) as boolean agrega uno o más encabezados a las solicitudes http pase los encabezados a este objeto como un roassociativearray de pares nombre/valor este método devuelve true en caso de éxito y false en caso de error todos los encabezados que se agreguen con este método continuarán enviándose con las solicitudes http hasta que se llame a clearheaders() syncmethod(a as object) as object inicia una solicitud http síncrona utilizando los parámetros especificados (consulte los parámetros descritos para asyncmethod) si los parámetros están mal formados, entonces el método devuelve invalid y llamar a getfailurereason() puede proporcionar más información; de lo contrario, el método devuelve una instancia de rourlevent que contiene los resultados de la solicitud puede tardar varios minutos en que una solicitud fallida agote el tiempo de espera y brightscript permanecerá bloqueado esperando durante ese tiempo, por lo que no se recomienda el uso de este método el método asyncmethod no bloquea y debe utilizarse en su lugar setrelativelinkprefix(prefix as string) as boolean coloca el prefijo especificado delante de la url si la url es relativa use este método para convertir fácilmente las url file /// en independientes de la unidad bindtointerface(interface as integer) as boolean garantiza que la solicitud solo salga a través de la interfaz de red especificada de forma predeterminada, la solicitud sale a través de la interfaz de red más apropiada (lo que puede depender de la métrica de enrutamiento configurada mediante ronetworkconfiguration) tenga en cuenta que si ambas interfaces están en la misma red de capa 2, este método puede no funcionar siempre como se espera debido al modelo de host débil de linux el comportamiento predeterminado puede seleccionarse pasando 1 al método este método devuelve falso en caso de error en este caso, el método getfailurereason() puede proporcionar más información asyncmethod(parameters as roassociativearray) as boolean inicia una solicitud de método http asíncrona utilizando los parámetros especificados (consulte a continuación) si la solicitud se inicia correctamente, el método devuelve true y entregará un evento si la solicitud no pudo iniciarse, entonces el método devuelve false y no entregará un evento si esto ocurre, es posible que pueda utilizar el método getfailurereason() para obtener más información los parámetros se especifican utilizando una instancia de roassociativearray que puede contener los siguientes miembros nombre tipo descripción method string un método http los valores normales incluyen "head", "get", "post", "put" y "delete" otros valores son compatibles; sin embargo, dependiendo del comportamiento del servidor, es posible que no funcionen como se espera request body string string una cadena que contiene el cuerpo de la solicitud request body file string el nombre de un archivo que contiene el cuerpo de la solicitud response body string boolean si se especifica y se establece en true, la respuesta se almacenará en una cadena y se proporcionará mediante el método rourlevent getstring() response body file string el nombre del archivo que contendrá el cuerpo de la respuesta el cuerpo se escribe en un archivo temporal y luego se renombra al nombre de archivo especificado si la operación se realiza correctamente response body resume file string el nombre del archivo que contendrá el cuerpo de la respuesta para una solicitud get, se envía un encabezado range basado en el tamaño actual del archivo, que se escribe en el lugar en lugar de utilizar un archivo temporal response body object string utiliza el cuerpo de la respuesta para crear un objeto del tipo especificado consulte la entrada de asyncgettoobject() para conocer los tipos de objeto compatibles response pipe roarray utilice una canalización de controladores para procesar el cuerpo de la respuesta a medida que se recibe consulte a continuación para obtener más detalles la respuesta roarray para response pipe consta de una o más instancias de roassociativearray que contienen una descripción de filtro (consulte a continuación) el último arreglo asociativo suele ser un filtro de salida nombre tipo descripción hash string calcule un hash (digest) de los datos utilizando el algoritmo especificado a medida que pasan por el pipeline los hashes compatibles incluyen los siguientes "crc32", "md5", "sha1", "sha256", "sha384", "sha512" el hash resultante puede recuperarse como una cadena hexadecimal utilizando el método rourlevent gethash() decompress string descomprima el cuerpo de la respuesta utilizando el algoritmo especificado actualmente, el único algoritmo compatible es “gzip” a menudo es más fácil utilizar un http content encoding en lugar de descomprimir explícitamente el cuerpo prefix capture integer capture el número especificado de bytes (entre 1 y 16384) desde el inicio del flujo y almacénelos por separado los bytes pueden recuperarse utilizando el método rourlevent getprefix() , pero no pueden pasarse a filtros posteriores output file string envíe la salida del pipeline al archivo especificado la salida se escribe en un archivo temporal y luego se cambia el nombre al nombre de archivo especificado si la operación se realiza correctamente output string boolean si se especifica y se establece en true, la respuesta se almacenará en una cadena y se proporcionará mediante el método rourlevent getstring() el siguiente código de ejemplo especifica una matriz de controladores para filtrar el cuerpo de la respuesta de una solicitud http url = createobject("rourltransfer") pipe = \[ { decompress "gzip"}, { hash "md5" }, { output file "test txt" } ] result = url asyncmethod({ method "get", response pipe pipe })