Acceso a servicios web externos

Los complementos y las actividades personalizadas de flujo de trabajo pueden obtener acceso a la red con los protocolos HTTP y HTTPS. Esta funcionalidad proporciona soporte para obtener acceso a los servicios web populares como sitios sociales, fuentes de noticias, servicios web, etc. Las siguientes restricciones de acceso web se aplican a esta funcionalidad de espacios aislados.

  • El servidor debe tener la versión actual de TLS y conjuntos de cifrado.
  • Solo se admiten los protocolos HTTP y HTTPS.
  • El acceso a localhost (bucle invertido) no está permitido.
  • Las direcciones IP no se pueden usar. Debe usar una dirección web con nombre que requiera resolución de nombres DNS.
  • La autenticación anónima es compatible y se recomienda. No hay ninguna disposición que solicite al usuario conectado sus credenciales o que las guarde.
  • Su servidor debe permitir las conexiones desde los valores de dirección IP de los servicios de Power Platform Dynamics 365 especificados en la etiqueta de servicio de AzureCloud.

Otros métodos de acceso a los servicios web incluyen el uso de webhooks y Azure Service Bus. Consulte los vínculos proporcionados más abajo para obtener más información sobre estos temas.

Cómo obtener acceso a servicios web externos

La mayoría de los usuarios están famliarizados con la clase System.Net.Http.HttpClient. HttpClient se introdujo con .NET 4.5 y ofrece funcionalidades significativas sobre la clase System.Net.WebClient que sigue estando disponible.

Para los nuevos complementos debe usar HttpClient porque el equipo de .NET no recomienda WebClient para nuevos desarrollos. No obstante, esto no significa que deba reemplazar los usos de códigos heredado de WebClient que encuentre. La mayoría de las ventajas proporcionadas en HttpClient no proporcionan ventajas necesariamente en un complemento. HttpClient está diseñada para ser reutilizado y es asincrónico de forma predeterminada. A menos que esté realizando varias solicitudes HTTP dentro de su complemento, WebClient está diseñado para una sola solicitud. Puesto que HttpClient es asincrónico de forma predeterminada, debe olvidarse de los patrones de uso típicos y agregar código para forzar las operaciones que se deben realizar de forma sincrónica, normalmente quitando la palabra clave await y anexando .GetAwaiter().GetResult() a cualquier llamada asincrónica.

WebClient proporciona métodos asincrónicos simples como UploadData, DownloadFile que no exponen claramente el método HTTP subyacente utilizado, pero se pueden configurar utilizando anulaciones específicas como UploadString(String, String, String) en caso de que quiera usar PATCH en vez de POST.

En la mayoría de los casos aparte de los complementos, le convendrá usar HttpClient. En complementos, también puede usar WebClient si lo prefiere.

Prácticas recomendadas

Como se indica en los siguientes temas de procedimientos recomendados:

Debe asegurarse de establecer un período Timeout adecuado para sus llamadas externas y deshabilitar KeepAlive. Para obtener más información, consulte los vínculos anteriores.

Consultar también

Complementos
Extensiones de flujo de trabajo
Integración de Azure
Utilizar webhooks
Ejemplo: acceso web desde un complemento de espacio aislado

Nota

¿Puede indicarnos sus preferencias de idioma de documentación? Realice una breve encuesta. (tenga en cuenta que esta encuesta está en inglés)

La encuesta durará unos siete minutos. No se recopilan datos personales (declaración de privacidad).