関数Script.Util.HttpResponseの詳細

Oct 11 2020

誰かが関数Script.Util.HttpResponseのサンプルコードを提供したり、これらのヘルプドキュメントよりも優れたリソースを指し示したりできますか?

回答

4 Gortonington Oct 12 2020 at 01:16

注意として、Script.Util.HttpResponseはユーザー関数ではなく、他のScript.Util呼び出しからの応答オブジェクトです。

そこからの情報を正しく解析するための詳細については、呼び出しからの応答を処理する方法(結果の解析)に関するScript.Util.HttpRequestの記事を参照してください。これは、HttpRequest呼び出しの返されたオブジェクトから情報を取得する方法について説明しています。これは、実際には、公式ドキュメントに記載されているScript.Util.HttpResponseオブジェクトです。

ドキュメントに示されているように、オブジェクトから次のパラメータを使用できます。

  1. content -URLから返されたHTTP応答コンテンツを含む文字列値
  2. contentType-応答によって返されるコンテンツタイプを示す文字列値
  3. encoding-応答によって返されるエンコーディングを示す文字列値
  4. headers-応答から返されたHTTP応答ヘッダーコレクションを含むオブジェクト
  5. returnStatus-リクエストに対するMarketingCloudの応答を含む整数値:
  • 0-OK
  • -1-空のURL
  • -2-通話に失敗しました
  • -3-空のコンテンツで通話が成功しました
  1. statusCode -URLから返されたHTTP応答ステータスコードを含む整数値(200、404、500など)

以下のように使用します。

//assuming var res is the response object from an HttpRequest call
var content = res.content; 
var contentType = res.contentType;
var encoding = res.encoding;
var headers = res.headers["myHeaderName"];
var status = res.returnStatus
var code = res.statusCode

ただし、いくつかの注意事項がres.contentCLRオブジェクトとして返されますが、これはSFMC SSJSと実際には互換性がないため、文字列に変換してから、ParseJSONを使用して認識可能なオブジェクト/配列に変換して出力する必要があります。

以下のように:

var resStr = String(res.content);
var resJSON = Platform.Function.ParseJSON(resStr);

注:代わりにStringifyを使用する場合、これは機能しません。オブジェクトのデータ型をStringに変更する必要があります。そうしないと、正しく出力されません。JSONのStringバージョンから、それを解析して、操作可能なJSONにすることができます。


ヘッダーに関する注記:
編集2020-11-09-ヘッダーの操作中にエラーが発生した場合にこのスレッドで取得した情報に基づいて、これ"Use of Common Language Runtime (CLR) is not allowed"を許可するために関連するビジネスルールをオンにするためにサポートに相談する必要があります。


そうは言っても、私はこれについてあまり広範囲な調査を行っていないので、このオブジェクトには他にも気づいていない癖やオプションがあるかもしれません。何かクールなものを見つけたら、ここで自由に調べてコメントを追加してください。