Conexión a servicios web (HTML)
[ Este artículo está destinado a desarrolladores de Windows 8.x y Windows Phone 8.x que escriben aplicaciones de Windows en tiempo de ejecución. Si estás desarrollando para Windows 10, consulta la documentación más reciente
Estos temas muestran diversos métodos para conectar con un servicio web en una aplicación de Windows en tiempo de ejecución. El método recomendado consiste en usar Windows.Web.Http.HttpClient, una nueva clase de Windows en tiempo de ejecución disponible para todos los idiomas. Esta es la API más completa y eficaz que puede utilizar una aplicación para acceder a un servicio web.
Las clases del espacio de nombres Windows.Web.Http proporcionan una interfaz de programación para aplicaciones de cliente HTTP modernas. El espacio de nombres Windows.Web.Http y los espacios de nombres relacionados Windows.Web.Http.Headers y Windows.Web.Http.Filters proporcionan componentes de cliente HTTP que permiten a los usuarios realizar solicitudes HTTP y recibir respuestas HTTP de servicios web modernos a través de HTTP.
En las operaciones de solicitud HTTP básicas, Windows.Web.Http.HttpClient tiene una interfaz sencilla para administrar la tareas más comunes y proporciona valores predeterminados razonables para autenticación (AUTH) que se aplican a la mayoría de los escenarios. En las operaciones HTTP más complejas, se ofrecen muchas funcionalidades adicionales.
En los temas de esta sección también se describe un contenedor de la biblioteca de Windows para JavaScript para XMLHttpRequest denominado WinJS.xhr. WinJS.xhr proporciona una manera sencilla de acceder a contenido web en tu aplicación. Puedes usar WinJS.xhr para realizar solicitudes HTTP o HTTPS para cargar o descargar contenido y archivos de cualquier formato.
A diferencia de XMLHttpRequest, que permite especificar si la solicitud debe hacerse de manera asincrónica o no, WinJS.xhr siempre es asincrónico. WinJS.xhr devuelve WinJS.Promise, de modo que puedes atender solicitudes completadas, errores y solicitudes en curso con los métodos then o done.
Advertencia Ahora es posible usar XMLHttpRequest para transferir objetos extremadamente grandes, como objetos Blob y FormData, que probablemente tarden mucho tiempo en completarse. Windows.Web.Http.HttpClient también se puede usar para enviar o recibir objetos extremadamente grandes tales como secuencias. Como una aplicación puede cerrarse en cualquier momento, debes considerar la posibilidad de usar la transferencia en segundo plano en el espacio de nombres Windows.Networking.BackgroundTransfer para estas operaciones. Para obtener más información sobre la carga y descarga de contenido de gran tamaño, consulta los temas Cómo cargar un archivo y Transferencia de datos en segundo plano.
En la siguiente tabla se enumeran las API que las aplicaciones escritas en JavaScript pueden usar para acceder a un servicio web. La plataforma indica la versión de Windows donde se agregó la característica por primera vez.
API | Plataforma | Comentarios |
---|---|---|
Windows 8.1, Windows Phone 8.1, Windows Server 2012 R2 | Es el método recomendado para conectar con un servidor HTTP para enviar y recibir datos. Esta característica también se admite en aplicaciones escritas en JavaScript, C#, Visual Basic y C++ |
|
WinJS.xhr | Windows 8, Windows Phone 8.1, Windows Server 2012, | En Windows 8 y Windows Server 2012, era el método recomendado cuando XMLHttpRequest no resultaba adecuado. |
XMLHttpRequest | Windows 8, Windows Phone 8.1, Windows Server 2012 | Este objeto y API está disponible en las implementaciones de JavaScript en la mayoría de exploradores web modernos. |
Audiencia del desarrollador
Desarrolladores que usan JavaScript y HTML interesados en crear aplicaciones que se conecten a un servicio web.
La información de este tema es aplicable a las aplicaciones escritas en JavaScript y HTML.
Para obtener más información sobre cómo conectar con un servicio web para aplicaciones escritas en C++/XAML y aplicaciones que usan .NET Framework 4.5 y están escritas en C# o Visual Basic, consulta Conexión a servicios web (XAML).
En esta sección
Tema | Descripción |
---|---|
Envía una solicitud GET a un servicio web y recupera la respuesta mediante la clase Windows.Web.Http.HttpClient del espacio de nombres Windows.Web.Http. |
|
Con el valor del elemento "ms-https-connections-only" meta puedes evitar que tu aplicación use conexiones HTTP para navegar u otras formas de recuperación de contenido web que no sean medios. Cuando estableces el atributo content del elemento meta en "true", la navegación HTTP y la recuperación de contenido web que no sean medios tendrán errores. |
|
WinJS.xhr proporciona una manera sencilla de descargar contenido web en tu aplicación. En este tema se muestra cómo descargar un archivo con WinJS.xhr, controlar los errores e informar sobre el progreso de la descarga. También se muestra cómo descargar distintos tipos de contenido. |
|
Puedes cargar y descargar datos binarios cuando usas WinJS.xhr (que encapsula XMLHttpRequest). En este ejemplo se muestra cómo cargar un mapa de bits desde tus Imágenes. El método de Windows en tiempo de ejecución que se usa para abrir el archivo de mapa de bits devuelve una IRandomAccessStream, por lo que debes usar MSApp.createBlobFromRandomAccessStream para convertirlo en un Blob. Advertencia Ahora puedes usar XMLHttpRequest para cargar o descargar objetos que son más grandes que unos pocos MB, como objetos Blob y FormData, que podrían tardar mucho tiempo en completarse. Como las aplicaciones se pueden cerrar en cualquier momento, debes considerar la posibilidad de usar API de transferencia en segundo plano de Windows en tiempo de ejecución para estas operaciones. Para más información sobre la carga y descarga de contenido, consulta Cómo cargar un archivo y Cómo descargar un archivo. Para ver una explicación general de la transferencia en segundo plano, consulta Transferring data in the background. |
|
Al solicitar recursos web con WinJS.xhr, es posible que la respuesta se almacene en caché, lo que significa que las solicitudes posteriores devolverán la versión del recurso que ya existe en el equipo cliente en lugar de volver a enviar la solicitud. Sin embargo, puedes agregar un encabezado HTTP que garantice que la solicitud se vuelva a enviar, incluso si ya se almacenó en caché. |
|
Establecer valores de tiempo de espera con WinJS.xhr o HttpClient |
Al usar XMLHttpRequest, puedes establecer valores de tiempo de espera directamente, algo que no es posible con Windows.Web.Http.HttpClient o WinJS.xhr. Sin embargo, existe un modo de establecer tiempos de espera en objetos WinJS.Promise. Al llamar a WinJS.Promise.timeout, harás que la solicitud se cancele si no se completa dentro del intervalo de tiempo especificado. |
Un mashup es una aplicación web que usa datos de dos o más orígenes para crear algo nuevo. Este ejemplo muestra cómo usar XMLHttpRequest (XHR) para recuperar y mostrar una fuente Really Simple Syndication (RSS) remota. |
Temas relacionados
Otros recursos
Declaraciones de funcionalidad de las aplicaciones
Controlar excepciones en aplicaciones de red
Cómo configurar las funcionalidades de aislamiento de red
Cómo habilitar el bucle invertido y depurar el aislamiento de red
Referencia
Muestras
Integrar contenido y controles de una muestra de servicios web
Muestra del uso de un blob para guardar y cargar contenido
XHR, control de errores de navegación y muestra de esquemas de direcciones URL