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:
- Establecer KeepAlive en false para interactuar con hosts externos en un complemento
- Establecer tiempo de espera al realizar llamadas externas en un complemento
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).