2

この投稿に続いて、Salesforce から Web サービス (.Net) への Apex コールアウト、または POST を受信できるものを作成しようとしています。

これに慣れていないのでPOST、Salesforce から送信された Http をキャッチする方法がわかりません。つまり、Salesforce にアカウントの挿入時にトリガーされる Apex クラスがあります。

public class WebServiceCallout {

    @future (callout=true)
    public static void sendNotification(String name) {

        HttpRequest req = new HttpRequest();
        HttpResponse res = new HttpResponse();
        Http http = new Http();

        req.setEndpoint('http://localhost');
        req.setMethod('POST');
        req.setBody('name='+EncodingUtil.urlEncode(name, 'UTF-8'));
        req.setCompressed(true); // otherwise we hit a limit of 32000

        try {
            res = http.send(req);
        } catch(System.CalloutException e) {
            System.debug('Callout error: '+ e);
            System.debug(res.toString());
        }

    }

}

論理的にはreq.setEndpoint('http://localhost');、自分の IP と受け入れ可能なポートに置き換える必要があります。

これをキャッチしたい場合POST、Visual Studio (.Net) でどのプロジェクトをビルドする必要がありますか?

4

1 に答える 1

1

変更されないパブリック IP アドレスがあり、ポートがファイアウォールなどによってブロックされていないと仮定します...

Salesforceのリモート サイト設定にIP アドレスを追加します。これにより、コールアウトをエンドポイントにすることができます。

受信 HTTP 要求を処理する方法について、.NET には非常に幅広いオプションがあります。これを IIS でホストする予定ですか、それともポートを開いた状態でコマンド ラインで何かを実行したいだけですか?

HTTP リクエストを調べて本文から名前を読み取る Web アプリケーションのように単純なものにすることもできます。

于 2014-08-14T09:27:56.887 に答える