外部 Web サービスにアクセスする

注意

Effective November 2020:

  • Common Data Service has been renamed to Microsoft Dataverse. Learn more
  • Some terminology in Microsoft Dataverse has been updated. For example, entity is now table and field is now column. Learn more

This article will be updated soon to reflect the latest terminology.

プラグインとカスタム ワークフロー活動は、HTTP および HTTPS プロトコルを介してネットワークにアクセスできます。 この機能によって、ソーシャル サイト、ニュース フィード、Web サービスなどの一般的な Web サービスにアクセスできます。 このサンドボックスの機能には、次の Web アクセス制限が適用されます。

  • 許可されるプロトコルは HTTP および HTTPS だけです。
  • localhost (ループバック) へのアクセスは許可されません。
  • IP アドレスは使用できません。 DNS による名前解決を必要とする名前付き Web アドレスを使用する必要があります。
  • 匿名認証がサポートされ、その使用が推奨されます。 ログオン ユーザーの資格情報を入力または保存する必要はありません。

Webhook および Azure Service Bus の使用を含む Web サービスにアクセスする別の方法。 これらのトピックの詳細については以下で提供されるリンクを参照してください。

外部 Web サービスにアクセスする方法

最近、多くの人が System.Net.Http.HttpClient Class に精通しています。 HttpClient は .NET 4.5 で導入され、現在も利用可能な System.Net.WebClient Class を超える重要な機能を提供します。

.NET チームは WebClient を新規開発に推奨していない ため、新しいプラグインには HttpClient を使用する必要があります。 ただし、WebClient を使用した古いコードを見つけたら置き換える必要があるという意味ではありません。 HttpClient が提供するほとんどの利点は、プラグインで必ずしも利点を提供するわけではありません。 HttpClient は再利用されることを意図しており、既定では非同期です。 プラグイン内で複数の HTTP 要求を行う場合を除き、WebClient は 1 つの要求のために設計されています。 HttpClient は既定で非同期のため、通常の使用パターンから外れてコードを追加し、強制的に操作を同期的に実行する必要があります。通常は await キーワードを削除し、非同期呼び出しに .Result を付加します。

WebClient は使用する基盤の HTTP メソッドを明確に公開しない UploadDataDownloadFile などの単純な同期メソッドを提供します。しかし、POST の代わりに PATCH を使用する場合は、UploadString(String, String, String) などの特定の上書きを使用して設定できます。

ほとんどの場合、プラグイン以外では HttpClient を使用できます。 プラグイン内でも、必要に応じて WebClient を使用できます。

ベスト プラクティス

以下のベスト プラクティスのトピックで説明します:

外部呼び出しに適切な Timeout 期間を設定して KeepAlive を無効にする必要があります。 詳細は、これらのトピックを参照してください。

関連項目

プラグイン
ワークフローの拡張機能
Azure統合
Webhook の使用
サンプル: 隔離されたプラグインからの Web アクセス