cfhttp

説明

HTTP リクエストを生成し、サーバーからのレスポンスを処理します。

カテゴリ

インターネットプロトコルタグ

シンタックス

url = "server URL"
charset = "character encoding"
clientCert = "filename"
clientCertPassword = "password"
columns = "query columns"
delimiter = "character"
file = "filename"
firstrowasheaders = "yes|no"
getAsBinary = "auto|yes|no|never"
method = "method name"
multipart = "yes|no"
name = "query name"
password = "password"
path = "path"
port = "port number"
proxyServer = "host name"
proxyPort = "port number"
proxyUser = "username"
proxyPassword = "password"
redirect = "yes|no"
resolveURL = "yes|no"
result = "result name"
textQualifier = "character"
throwOnError = "yes|no"
timeout = "time-out period in seconds"
username = "username"
userAgent = "user agent"
authType = "BASIC|NTLM"
domain = "domain name"
workstation = "workstation name">

cfhttpparam tags [optional for some methods]

</cfhttp>

注意:このタグの属性は attributeCollection 属性で指定でき、その値は構造体になります。attributeCollection 属性で構造体の名前を指定し、タグの属性名を構造体のキーとして使用します。

関連項目

cfhttpparamGetHttpRequestDatacfftpcfldapcfmailcfpop

履歴

ColdFusion 11 更新プログラム 5:エンコーディング中に -_.! ~*'() の文字を無視するサポートを追加しました。 

ColdFusion 11 更新プログラム 3:PATCH メソッドのサポートを追加しました。

ColdFusion :NTLM 認証のサポートを追加しました。3 つの属性(authType、domain、workstation)が追加されました。また、このタグは、ColdFusion が Oracle 1.7 以降の JVM 上で実行されている場合にのみ、SNI(サーバー名表示)をサポートします。

ColdFusion 8:clientCert 属性と clientCertPassword 属性を追加しました。

ColdFusion MX 7.01:getAsBinary 属性の値として "never" が追加されました。

ColdFusion MX 7: result 属性が追加されました。

ColdFusion MX 6.1:

  • HEAD、PUT、DELETE、OPTIONS、および TRACE の各メソッドのサポートが追加されました。
  • multipart、getAsBinary、proxyUser、および proxyPassword の各属性が追加されました。
  • Changed  httpparam  の動作を変更: すべての操作には、 httpparam タグで処理するページのみに適用されます。
  • cfhttp.errorDetail という戻り変数を追加しました。
  • レスポンスの本文コンテンツのタイプがテキストと見なされるように変更されました。
  • 複数ヘッダーの動作が変更されました。同じタイプの複数ヘッダーは配列で返されるようになりました。
  • HTTPS プロキシトンネリングのサポートが追加されました。
  • コードとマニュアルのバグが修正されました。

ColdFusion MX:

  • 文字セットと firstrowasheaders  属性を追加しました
  • SSL (Secure Sockets Layer) のサポートが変更されました。ColdFusion は Sun JSSE ライブラリを使用します。このライブラリは、SSL をサポートするために 128 ビット暗号化をサポートします。

属性

次に示す属性は HTTP トランザクションを制御するためのもので、どの HTTP メソッドでも使用できます。

属性

必須/オプション

デフォルト

説明

url

必須

http プロトコルを使用

リクエストを処理するサーバー上のリソースのアドレスです。この URL にはホスト名か IP アドレスを含める必要があります。
トランザクションプロトコル( http :// または

https://

)を指定しなかった場合は、デフォルトのプロトコルである http が使用されます。
この属性でポート番号を指定した場合は、port 属性の値が上書きされます。
この cfhttpparam タグの URL 属性を使用すると、クエリ文字列の属性と値のペアがこの URL に追加されます。

charset

オプション

リクエスト:UTF-8 応答 :Content-type ヘッダーによって指定された文字セット( response で charset を指定していない場合は UTF-8)。

URL クエリ文字列、フォームまたはファイルデータ、レスポンスなどのリクエストの文字エンコードです。一般的に使用される値を次に示します。

  • utf -8
  • iso-8859-1
  • windows-1252
  • us- ascii
  • shift_jis
  • iso-2022-jp
  • euc -jp
  • euc - kr
  • big5
  • euc - cn
  • utf -16
    文字エンコードについて詳しくは、www.w3.org/International/O-charset.en.html を参照してください。

clientCert

オプション

 

リクエストのためのクライアント証明書が含まれている PKCS12 形式のファイルへの絶対パスです。

clientCertPassword

オプション

 

クライアント証明書を復号するために使用されるパスワードです。

compression

オプション

 

ターゲット Web サーバーの圧縮ステータスです。サポートされている値は none のみです。ターゲットの Web サイトが、HTTP 圧縮が有効な IIS で実行されている場合は、この属性を使用して、GET または POST オペレーションを実行するときの接続エラーを回避できます。

getAsBinary

オプション

×

  • × : ColdFusion がレスポンス本文のタイプをテキストとして認識しない場合は、それを ColdFusion オブジェクトに変換します。
  • auto: ColdFusion がレスポンス本文のタイプをテキストとして認識しない場合は、それを ColdFusion Binary タイプデータに変換します。
  • yes: レスポンス本文のコンテンツを必ず ColdFusion Binary タイプデータに変換します。ColdFusion がレスポンス本文のタイプをテキストとして認識する場合でも同様です。
  • never: 特定の MIME タイプから ColdFusion の Binary タイプデータへの自動変換が防止され、返される内容が常にテキストとして処理されます。
    ColdFusion は、次の場合にレスポンス本文をテキストとして認識します。
  • ヘッダにコンテンツタイプが指定されていない場合
  • コンテンツタイプが "text" で始まっている場合
  • コンテンツタイプが "message" で始まっている場合
  • コンテンツタイプが "application/octet-stream" である場合
    ColdFusion がレスポンス本文をテキストとして認識せず、オブジェクトに変換した場合でも、その本文がテキストから構成されている場合は、 cfoutput タグを使用して表示することができます。この cfoutput タグでは Binary タイプデータを表示できません。バイナリデータをテキストに変換するには、ToString 関数を使用します。

method

オプション

GET

  • GET: サーバーに情報をリクエストします。リクエストされた情報をサーバーが 識別するために必要なデータはすべて、 要求された情報は、URL、または cfhttp type = "URL" タグに含める必要があります。
  • POST: 処理する情報をサーバーに送信します。1 つまたは複数の cfhttpparam タグが必要です。フォームに似たデータを送信するときによく使用されます。
  • PUT: 指定の URL にメッセージ本文を保管するようサーバーにリクエストします。このメソッドは、サーバーにファイルを送信するときに使用されます。
  • DELETE: 指定の URL を削除するようサーバーにリクエストします。
  • HEAD: GET メソッドと同じですが、サーバーはレスポンス内にメッセージ本文を送信しません。このメソッドは、ハイパーテキストリンクの有効性やアクセシビリティのテスト、ドキュメントのタイプや修正時刻の確認、またはサーバーのタイプの判別に使用します。
  • TRACE:サーバーに対し、HTTP ヘッダーを echo を使用して応答本文で送信者に返すようリクエストします。トレースリクエストには本文がありません。このメソッドを使用すると、ColdFusion アプリケーションはサーバー側で何を受信したかを調べ、そのデータをテストや診断情報に利用することができます。
  • OPTIONS: サーバーまたは指定の URL で使用できる通信オプションについての情報をリクエストします。このメソッドを使用すると、ColdFusion アプリケーションは、追加のサーバー 活動 を要求しなくても、URL に関連付けられているオプションや要件、あるいはサーバーの機能を判別することができます。
  • PATCH:指定 URL での リクエストされた エンティティに、部分的なアップデートをリクエストします。このメソッドは、リソースの一部を変更する(PUT メソッドを使用して指定した URL にあるリソースを完全に置き換える)場合に使用します。

password

オプション

 

基本認証のターゲット URL にパスワードを渡すために使用します。 username を組み合わせて base64 エンコードされた文字列を 作成し、 Authenticate ヘッダーで渡します。統合 Windows 認証または Kerebos 認証には対応しません。

port

オプション

80 ( http の場合)、443(https の場合)

リクエストの送信先となるサーバー上のポート番号です。この値よりも url 属性の port 値が優先されます。

proxyServer

オプション

 

リクエストの送信先となるプロキシサーバーのホスト名または IP アドレスです。

proxyPort

オプション

80

プロキシサーバー上で使用するポート番号です。

proxyUser

オプション

 

プロキシサーバーに提供するユーザー名 です。

proxyPassword

オプション

 

プロキシサーバーに提供するパスワードです。

redirect

オプション

yes

レスポンスヘッダに Location フィールドが含まれ、ColdFusion が 300 系列 (リダイレクション) のステータスコードを受け取った場合、そのフィールド内で指定された URL に実行をリダイレクトするかどうかを指定します。

  • yes: 指定のページに実行をリダイレクトします。
  • no:実行を停止し、 cfhttp 変数で応答情報を返す、または throwOnError 属性が True の場合はエラーをスローします。
    cfhttp.responseHeader.Location 変数にはリダイレクトパスが含まれています。ColdFusion では、1 つのリクエストで最大 4 回までリダイレクトが行われます。これよりも多くなると、redirect ="no" を指定した場合と同じ処理が行われます。
    メモ: cflocation タグによって HTTP 302 応答と、Location ヘッダー値として cfm 属性が生成されます。

resolveURL

オプション

×

  • × : レスポンス本文の中の URL を変換しません。その結果、レスポンス本文に含まれる相対 URL リンクはすべて機能しなくなります。
  • yes: 取得したページ内でもリンクが機能するように、レスポンス本文中の URL (ポート番号も含む) を絶対 URL に変換します。次の HTML タグに適用されます。
  • img
  • src
  • a href
  • form action
  • applet code
  • script src
  • embed src
  • に pluginspace
  • body background
  • frame src
  • bgsound src
  • object data
  • object classid
  • object codebase
  • object usemap
    file 属性および path 属性を使用する場合は、URL を変換しません。

result

オプション

 

結果を受け取る代替変数を指定することができます。

throwOnError

オプション

no

  • yes:サーバーがエラーレスポンスコードを返す場合に、 cftry と cfcatch または ColdFusion エラーページ使って検出できる例外を返します。
  • no: エラーレスポンスを返す場合に例外を返しません。このような場合は、アプリケーションで cfhttp .StatusCode 変数を使用して、エラーの 有無 とその原因を判断できます。

timeout

オプション

 

リクエストの最大待機時間を秒数で指定します。レスポンスがないままタイムアウトになった場合は、そのリクエストが失敗したものと見なされます。クライアントが URL 検索パラメータ内でタイムアウトを指定した場合は (例 : ?RequestTime=120)、その URL タイムアウトと timeout 属性値のうち、短いほうが採用されます。これにより、リクエストが確実にページよりも先に (あるいは同時に) タイムアウトになります。
URL にタイムアウトが指定されていない場合は、Administrator タイムアウトと timeout 属性値のうち、短いほうが採用されます。
上記のどの方法でもタイムアウト値が設定されていない場合は、ColdFusion は cfhttp リクエストが処理されるのを無限に待機することになります。

userAgent

オプション

ColdFusion

ユーザーエージェントリクエストヘッダに配置されるテキストです。リクエストクライアントソフトウェアを識別するために使われます。ColdFusion アプリケーションをブラウザのように見せることができます。

username

オプション

 

これを使用して ユーザー名 を基本認証のターゲット URL に渡します。これを password と組み合わせ、認証ヘッダー で 渡された base64 形式でエンコードされた文字列を作成します。統合 Windows 認証または Kerberos 認証には対応しません。

authType オプション BASIC サポートされる値は次のとおりです。
  • BASIC
  • NTLM

メモ:
認証タイプが NTLM である場合は、「リダイレクト」を false に設定しないようにします。

domain オプション   認証に使用するドメイン名です(NTLM ベースの認証に使用)。
workstation オプション   認証に使用するワークステーション名です(NTLM ベースの認証に使用)。
  オプション    
  オプション    

PUT メソッドでは、次の属性を使用して、 httpparam type="formField" で指定されたデータの送信方法を設定します。

属性

必須/オプション

デフォルト

説明

multipart

オプション

no(ファイルタイプデータが request に含まれる場合にのみマルチパートとして送信)

ColdFusion に対し、 cfhttpparam type = "formField" タグで指定されたすべてのデータをマルチパート/フォームデータのコンテンツタイプを使用したマルチパート/フォームデータのコンテンツタイプを使用して、として使用できます。デフォルトでは、ColdFusion によって送信されるのは、 cfhttp リクエストに、 コンテンツタイプ 「application/x-www-form- urlencoded 」を使用した formField のみを含むもののみです。ただし、リクエストに File タイプデータも含まれている場合は、すべての部分に multipart/form-data コンテンツタイプが使用されます。この属性を yes に設定した場合は、Content-Type の記述の中でリクエストの文字セットも送信されます。すべてのフォームフィールドデータをこの文字エンコードでエンコードする必要があります。ColdFusion はこのデータに URLEncode を実行しません。フィールド名は ISO-88591-1 または ASCII である必要があります。一部の http パーサ(以前のバージョンの ColdFusion で使われていたものも含む)は、マルチパートフォームフィールドの文字エンコードの説明を無視します。

次の属性はマルチパートヘッダフィールドを設定し、YouTube にビデオをアップロードする場合などに使用されます。

属性

必須/オプション

デフォルト

説明

multipartType

オプション

form-data

マルチパートヘッダフィールドを related または form-data に設定できます。デフォルトでは、値は form-data です。

<! ---ビデオを取得---> 
<cfset videoName = &quot;<video path>\hello.wmv&quot;> 
<cfset videoFileName = &quot;hello.wmv&quot;> 
<cfoutput> 
<! ---ユーザーアカウントデータを設定---> <cfset clientKey = &quot;client key from google&quot;/> <cfset devKey = &quot;<dev key from google>&quot;/> <cfset youTubeUploadURL = &quot;http://uploads.gdata.youtube.com/feeds/api/users/default/uploads&quot;/> 
<! ---Google / YouTube で認証---> <cfhttp url=&quot;https://www.google.com/accounts/ClientLogin&quot; method=&quot;post&quot; result=&quot;result&quot; charset=&quot;utf-8&quot;> <cfhttpparam type=&quot;formfield&quot; name=&quot;accountType&quot; value=&quot;HOSTED_OR_GOOGLE&quot;> <cfhttpparam type=&quot;formfield&quot; name=&quot;Email&quot; value=&quot;<gmail id>&quot;> <cfhttpparam type=&quot;formfield&quot; name=&quot;Passwd&quot; value=&quot;<password>&quot;> <cfhttpparam type=&quot;formfield&quot; name=&quot;service&quot; value=&quot;youtube&quot;> <cfhttpparam type=&quot;formfield&quot; name=&quot;source&quot; value=&quot;youtubecode&quot;> </cfhttp> 
<! ---認証トークンを作成---> <cfset content = result.filecontent> <cfset authdata = structNew()> <cfloop index=&quot;line&quot; list=&quot;#content#&quot; delimiters=&quot;#chr(10)#&quot;> <cfset dtype = listFirst(line, &quot;=&quot;)> <cfset value = listRest(line, &quot;=&quot;)> <cfset authdata[dtype] = value></cfloop> 
<! --- ATOM XML を作成してビデオとともに送信するファイルを保存---> <cfsavecontent variable=&quot;meta&quot;><cfoutput> <entry xmlns=&quot;http://www.w3.org/2005/Atom&quot; xmlns:media=&quot;http://search.yahoo.com/mrss/&quot; xmlns:yt=&quot;http://gdata.youtube.com/schemas/2007&quot;> <media:group> <media:title type=&quot;plain&quot;>WithOutQuotes</media:title> <media:description type=&quot;plain&quot;>Test Description</media:description> <media:category scheme=&quot;http://gdata.youtube.com/schemas/2007/categories.cat&quot;>People </media:category> <media:keywords>yourvideo</media:keywords> </media:group> </entry> </cfoutput> </cfsavecontent> <cfset tmpfile = expandPath(&quot;./meta.xml&quot;)/> <cffile action=&quot;write&quot; file=&quot;#tmpfile#&quot; output=&quot;#trim(meta)#&quot; /> 

<! ---ビデオをアップロード---> <cfhttp url=&quot;#youTubeUploadURL#&quot; result=&quot;result&quot; method=&quot;POST&quot; timeout=&quot;450&quot; multipartType=&quot;related&quot;> <cfhttpparam type=&quot;header&quot; name=&quot;Authorization&quot; value=&quot;GoogleLogin auth=#authdata.auth#&quot;> <cfhttpparam type=&quot;header&quot; name=&quot;X-GData-Client&quot; value=&quot;#variables.clientkey#&quot;> <cfhttpparam type=&quot;header&quot; name=&quot;X-GData-Key&quot; value=&quot;key=#variables.devkey#&quot;> <cfhttpparam type=&quot;header&quot; name=&quot;Slug&quot; value=&quot;#videoFileName#&quot;> 
<! ---<CFHTTPPARAM type=&quot;HEADER&quot; name=&quot;Connection&quot; value=&quot;Keep-Alive&quot;> ---> 
<! ---2 つのファイルを送信---> <cfhttpparam type=&quot;file&quot; name=&quot;API_XML_Request&quot; file=&quot;#tmpfile#&quot; mimetype=&quot;application/atom+xml&quot;> <cfhttpparam type=&quot;file&quot; name=&quot;file&quot; file=&quot;#videoName#&quot; mimetype=&quot;video/*&quot;> </cfhttp> <cfdump var=&quot;#result#&quot;/> </cfoutput>

次の属性を使用すると、必要なオペレーションの結果を返すために使用する変数の名前を指定することができます。指定した名前が、戻り値にアクセスする際の接頭辞として cfhttp と置き換わります。例えば、result 属性を myResult に設定した場合は、#myResult.FileContent# として FileContent にアクセスします。

result 属性では、複数のページから同時に呼び出される関数または CFC について、一方の呼び出しの結果が他方の呼び出しの結果を上書きしないようにすることができます。cfhttp get オペレーションで返される変数の詳細については、「使用方法」セクションのcfhttp の get オペレーションで返される変数を参照してください。

属性

必須/オプション

デフォルト

説明

result

オプション

 

結果を返すために使用する変数の名前を指定します。

次の属性は、HTTP レスポンス本文をファイルに保管するときに使用します。GET、POST、PUT、DELETE、OPTIONS、TRACE の各メソッドでレスポンス本文をファイルに保管することができますが、DELETE メソッドと OPTIONS メソッドではほとんど役に立ちません。

属性

必須/オプション

デフォルト

説明

ファイル

path 属性を指定していて、GET メソッドでない場合は必須

「説明」を参照

レスポンス本文の保管先となるファイルの名前です。GET オペレーションでは、URL 内でリクエストされたファイルがデフォルトになります(ファイルが指定されている場合)。例えば、GET メソッドの URL が http:www.myco.com/test.htm である場合、デフォルトファイルは test.htm です。この属性ではディレクトリへのパスを指定しないでください。パスは path 属性で指定します。

path

file 属性を指定している場合は必須

 

HTTP レスポンス本文をファイルに保管することを ColdFusion に指示します。ファイルの保管先となるディレクトリへの絶対パスを指定します。

ファイルのメモリ内のディレクトリを指定するには、path 属性で次のシンタックスを使用します。メモリ内のファイルを使用すると、一時的データの処理が速くなります。

ram:///filepath

ファイルパスには、複数のディレクトリを含めることができます (例 : ram:///petStore/images.パスに含まれるディレクトリを事前に作成しておく必要があります。メモリ内ファイルの使用方法について詳しくは、『ColdFusion アプリケーションの開発』の「ColdFusion アプリケーションの最適化」の「メモリ内ファイルの使用」を参照してください。
次の属性は、HTTP レスポンス本文を ColdFusion クエリオブジェクトに変換するときに使用します。これらの属性は GET メソッドと POST メソッドでのみ使用できます。

属性

必須/オプション

デフォルト

説明

列[れつ]

オプション

レスポンスの 1 行目には列名が含まれます。

このクエリの列名をカンマで区切って指定します。スペースは使用しません。列名は文字で始める必要があります。2 文字目以降には、文字、数字、アンダースコア文字 (_) を使用できます。
レスポンス内に列名ヘッダーがない場合は、列名を識別するためにこの属性を指定します。この属性を設定したときに、firstrowasHeader 属性が true (デフォルト) だった場合には、この属性で指定した列名によってレスポンスの 1 行目が置き換えられます。この動作を利用して、リクエストによって取得された列名を独自の名前に置き換えることができます。
この属性またはレスポンスからの列名の中で重複する列ヘッダがある場合、その名前にアンダースコアが付加され、固有の名前が作成されます。
この属性で指定した列の数が HTTP レスポンス本文の中の列数と等しくない場合は、エラーが発生します。

delimiter

オプション

, (カンマ)

クエリ列を区切る文字です。レスポンス本文はこの文字を使用してクエリ列を区切る必要があります。

firstrowasheaders

オプション

yes

ColdFusion で、クエリのレコードセットの最初の行を処理する方法を決定します。

  • yes:1 行目を列ヘッダーとして扱います。columns 属性を指定した場合は、ファイルの 1 行目が無視されます。
  • no: 1 行目をデータとして扱います。columns 属性を指定しなかった場合は、"column_1" のように、"column" という単語に数字を付加した列名が作成されます。

name

オプション

 

返された HTTP レスポンス本文から指定の名前のクエリオブジェクトを作成するよう ColdFusion に指示します。

textQualifier

オプション

" 二重引用符

テキスト列の始まりと終わりを示すオプションの文字です。レスポンス本文中のテキストフィールドがフィールド値の一部に区切り文字を含んでいる場合は、テキストフィールドをこの文字で囲む必要があります。
この文字を列テキストの中に含めるときには、文字を 2 つ指定してエスケープします。例えば、テキスト修飾子が二重引用符である場合に、この文字をエスケープするには "" と指定します。

使用方法

cfhttp タグは、HTTP リクエストを作成し、返された結果を処理するための汎用ツールです。このタグを使用すると、ほとんどの標準 HTTP リクエストタイプを生成することができます。リクエストヘッダーと本文コンテンツを指定するには、このタグ内で cfhttpparam タグを使用します。
ColdFusion は、cfhttp リクエストに対するレスポンスを受け取ると、そのレスポンス本文をファイルまたは cfhttp.FileContent 文字列変数に保管することができます。本文テキストが結果セットとして構築されている場合は、その本文テキストをクエリオブジェクトに入れることができます。さらに、返されたすべてのヘッダ値へのアクセス、エラーステータスとリダイレクションの処理方法の指定、リクエストをハングさせないためのタイムアウトの指定もできます。
HTTP プロトコルは World Wide Web のバックボーンであり、すべての web トランザクションで使用されます。cfhttp タグはほとんどのリクエストタイプを生成できるので、非常に柔軟に使用することができます。例えば次のような使い方があります。

  • Web サービスとしては使用できないダイナミックな web サイトやサービスとやり取りする(SOAP web サービスへのアクセスには cfinvoke タグを使用)
  • Web サーバー上のイメージなど、HTML ページやその他のファイルのコンテンツを取得し、それを CFML ページ内で使用したり、ファイルに保管したりする
  • url 属性に https プロトコルを指定して、サーバーに安全なリクエストを送信する
  • POST メソッドを使用して、multipart/form-data スタイルのデータを、そのようなデータを処理して結果を返すことのできる任意の URL (CGI 実行可能ファイルや、その他の ColdFusion ページなど) に送信する
  • PUT メソッドを使用して、FTP リクエストを受け付けないサーバーにファイルをアップロードする
    このタグの本文には、cfhttpparam タグを含めることができます。また、PUT リクエストと POST リクエストの場合はこのタグは必須です。このタグに cfhttpparam タグを含める場合は、</cfhttp> 終了タグが必要です。
    cfhttp タグを含む HTTPS を使用するためには、各 Web サーバーに対する証明書を、ColdFusion が使用する JRE のキーストアに手動でインポートすることが必要になる場合があります。JSSE (Java Secure Sockets Extension) が認識する機関 (Verisign など) によって証明書が署名 (発行) される場合、つまり、署名する機関が既に cacerts にある場合、この手順は必要ありません。ただし、SSL (Secure Sockets Layer) 証明書を自己発行している場合は、この手順が必要になることがあります。

証明書を手動でインポートするには :

  1. SSL サーバー上の当該ページに進みます。
  2. 鍵のアイコンをダブルクリックします。
  3. 「詳細」タブをクリックします。
  4. 「ファイルにコピー」をクリックします。
  5. base64 オプションを選択してファイルを保存します。
  6. CER ファイルを C:¥ColdFusion9¥runtime¥jre¥lib¥security (または JRE ColdFusion が使用する任意の場所) にコピーします。
  7. 同じディレクトリの次のコマンドを実行します (keytool.exe は C:¥ColdFusion9¥runtime¥jre¥bin にあります)。

    keytool -import -keystore cacerts -alias giveUniqueName -file filename.cer

cfhttp の get オペレーションで返される変数

cfhttp タグは、次の変数を返します。result 属性を設定した場合は、割り当てた名前が接頭辞として cfhttp と置き換わります。その他の情報については、result 属性を参照してください。

名前

説明

cfhttp.charSet

レスポンスの Content-Type ヘッダで指定されたレスポンス文字セット (文字エンコード) です。

cfhttp.errorDetail

HTTP サーバーへの接続が失敗した場合に、失敗の詳細を記録します(例 : "Unknown host: my.co.com")。それ以外の場合は、空の文字列になります。エラー状態について、他の変数を確認する前にこの変数を確認することをお勧めします。

cfhttp.fileContent

レスポンス本文です。例えば、GET オペレーションによって取得された HTML ページのコンテンツなどです。レスポンスをファイルに保管した場合は空になります。

cfhttp.header

すべてのヘッダ情報を 1 つの文字列に格納した生のレスポンスヘッダーです。cfhttp.responseHeader 変数と同じ情報を含みます。

cfhttp.mimeType

レスポンスの Content-Type ヘッダで指定されている MIME タイプです (例 : text/html)。

cfhttp.responseHeader

構造体の形式にされたレスポンスヘッダです。要素キーは、Content-Type や Status_Code などのヘッダ名です。あるヘッダータイプのインスタンスが複数ある場合は、そのタイプの値が配列に格納されます。よく使用されるテクニックは、#cfhttp.resonseHeaderfieldVariable# のように、cfhttp.responseHeader 構造体をダイナミック配列としてダイナミックにアクセスすることです。

cfhttp.statusCode

HTTP Explanation ヘッダ値の後に続く HTTP status_code ヘッダ値です (例 : "200 OK")。

cfhttp.text

ブール値。レスポンス本文のコンテンツタイプがテキストである場合は true になります。ColdFusion は、次の場合にレスポンス本文をテキストとして認識します。

  • ヘッダにコンテンツタイプが指定されていない場合
  • コンテンツタイプが "text" で始まっている場合
  • コンテンツタイプが "message" で始まっている場合
  • コンテンツタイプが "application/octet-stream" である場合

区切り形式のテキストファイルからクエリを構築する

cfhttp タグでは、レスポンス本文から ColdFusion クエリオブジェクトを作成することができます。これを行うには、レスポンス本文が、数行から成るテキストを含んでいて、その各行が列区切り文字によって区切られたいくつかのフィールドを含んでいる必要があります。デフォルトの区切り文字はカンマ (,) です。レスポンス本文では、テキスト修飾子を使用することもできます。デフォルトのテキスト修飾子は二重引用符 (") です。文字列フィールドをテキスト修飾子で囲むと、そのフィールドに区切り文字を含めることができます。フィールドテキスト内にテキスト修飾子を含める場合は、その文字を重ねて指定してエスケープします。次の例は、クエリに変換される 2 行のリクエスト本文を示しています。各行はカンマで区切られた 3 つのフィールドを含んでいます。

Field1,Field2,Field3
"A comma, in text","A quote: ""Oh My!""",Plain text

ColdFusion がこのデータをどのように処理するかを確認するには、次のコードを実行します。

<cfhttp method=&quot;Get&quot; url=&quot;127.0.0.1:8500/tests/escapetest.txt&quot; name=&quot;onerow&quot;> <cfdump var=&quot;#onerow#&quot;><br>

列名は次の 3 通りの方法で指定できます。

 

  • デフォルトでは、レスポンスの 1 行目は列名として使用されます。
  • columns 属性にカンマ区切りの値を指定した場合は、その属性で指定した名前が列名として使用されます。レスポンスの 1 行目にデータが含まれている場合は、firstRowAsHeaders="no" を設定します。データが含まれていない場合、1 行目は無視されます。
  • columns 属性を指定せず、firstrowasheaders="no" を設定した場合は、Column_1、Column_2、... というように列名が生成されます。
    cfhttp タグは、このタグによって返されるデータ内の列名をチェックして、列名が文字で始まっていることと、文字、数字、アンダースコア文字()だけを含んでいることを確認します。ColdFusion は無効な列名をチェックします。列名は文字で始める必要があります。2 文字目以降には、文字、数字、アンダースコア()を使用できます。列名が無効な場合は、エラーが発生します。

注意事項

  • ColdFusion Administrator のタイムアウトと URL のタイムアウトを有効にするには、ColdFusion Administrator の「サーバーの設定」ページでタイムアウトを有効にします。詳しくは、ColdFusion の設定と管理を参照してください。
  • cfhttp タグはすべてのオペレーションで基本認証をサポートします。
  • cfhttp では、SSL を使用してセキュアトランザクション通信が行われます。
  • HTTP レスポンス本文をファイルに保管した場合、それは CFHTTP.FileContent 変数には格納されず、クエリオブジェクトも生成されません。レスポンス本文をファイルに保管しなかった場合、それは CFHTTP.FileContent 変数に格納されます。このとき、name 属性を指定していればクエリオブジェクトが生成されます。
  • cfhttp タグは、やダイジェスト認証をサポートしません。
  • Microsoft IIS を使用している場合、HTTP ヘッダーサイズの制限はありません。HTTP ヘッダーサイズの制限を指定するには、IIS で設定します。
  • Cfhttp タグはエンコーディング中に ignores -_.! ~*'() の文字を無視します。このような文字を使用したクエリ文字列を使用して URL が指定されている場合、これらの文字は符号化されません。この機能を使用することで、受信側の URL に問題が発生するのを防ぐのに役立ちます。 

<cfhttp result=&quot;result&quot; method=&quot;GET&quot; charset=&quot;utf-8&quot; url=&quot;https://www.adobe.com/&quot;>
    <cfhttpparam name=&quot;q&quot; type=&quot;formfield&quot; value=&quot;cfml&quot;>
</cfhttp>
<cfdump var=&quot;#result#&quot;>

 Adobe

ヘルプをすばやく簡単に入手

新規ユーザーの場合