CFHTTPPARAM  
説明

cfhttp タグ本文でのみ使用できます。cfhttp の POST オペレーションに必須です。他のオペレーションではオプションです。HTTP リクエストを作成するためのパラメータを指定します。

 
カテゴリ

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

 
シンタックス
<cfhttpparam 
   type = "transaction type"
   name = "data name"
   value = "data value"
   file = "filename"
   encoded = "yes"、"no"
   mimeType = "MIME type designator">
 
関連項目

cfhttp、GetHttpRequestData、cfftp、cfldap、cfmail、 cfmailparam、cfpop

 
ヒストリ

ColdFusion MX 6.1:

  • header タイプと body タイプが追加されました。
  • encoded 属性と mimeType 属性が追加されました。
  • HTTP メソッドの動作が変更されました。すべての HTTP メソッドで httpparam タグを使用することができます。
  • name 属性の必要条件が変更されました。すべてのタイプに必須ではなくなりました。

 
使用方法

HTTP リクエストで送信するヘッダまたは本文データを指定します。type 属性は、そのパラメータが指定する情報を示します。cfhttp タグには、次の制限の下で複数の cfhttpparam タグを含めることができます。

  • XML の type 属性は、別の XML の type 属性や、body、file、または formField の type 属性とは併用できません。
  • body の type 属性は、別の body の type 属性や、XML、file、または formField の type 属性とは併用できません。
  • XML および body の type 属性は、cfhttp タグの TRACE メソッドでは使用できません。
  • file の type 属性は、cfhttp タグの POST および PUT メソッドでのみ意味があります。
  • formField type 属性は、cfhttp タグの POST および GET メソッドでのみ意味があります。

ColdFusion ページに HTTP リクエストを送信する場合は、CGI タイプで送信されるヘッダだけでなく、すべての HTTP ヘッダを CGI スコープ変数として使用することができます。ただし、"myVar" などのカスタム変数は CGI スコープのダンプには表示されません。

type="file" 属性を使用してファイルを送信する場合、そのファイルのコンテンツは multipart/form-data リクエストの本文の中で送信されます。このファイルを ColdFusion ページに送信した場合は、受信側のページの Form スコープに、cfhttpparam タグの name 属性に指定した名前をキーとするエントリが格納されます。この変数の値には、送信したファイルを保持するテンポラリファイルへのパスが含まれています。フォームフィールドのデータも送信した場合、form.fieldnames キーリスト内でのこのファイル名の場所は、フォームデータを含む cfhttp タグに相対的なファイルを含む cfhttpparam タグの場所によって決まります。

URL エンコードにより、アンパサンドなどの特殊文字はサーバーに渡されても保持されます。詳細については、465ページのURLEncodedFormatを参照してください。

"未処理" の HTTP メッセージ内の任意のデータを送信するには、type="body" 属性を含む cfhttpparam タグを使用して本文の内容を指定し、type="header" 属性を含む cfhttpparam タグを使用してヘッダを指定します。

 
<!--- この例は 2 つの CFML ページから成ります。 
      1 番めのページは 2 番めのページにポストされます。 --->

<!--- ポストする側の 1 番めのページ。 
      このページは、もう 1 つのページに変数をポストし、
      その 2 番めのページからのレスポンス本文を表示します。 
      実際の環境に応じて、URL とポートを変更してください。 --->

<cfhttp
      method="post" 
      url="http://127.0.0.1/tests/http/cfhttpparamexample.cfm"
      port="8500" 
      throwonerror="Yes">
   <cfhttpparam name="form_test" type="FormField" value="これはフォーム変数です">
   <cfhttpparam name="url_test" type="URL" value="これは URL 変数です">
   <cfhttpparam name="cgi_test" type="CGI" value="これは CGI 変数です">
   <cfhttpparam name="cookie_test" type="Cookie" value="これは Cookie です">
</cfhttp>

<!--- ポスト先のページから返された結果を出力します。 --->
<cfoutput>
   #cfhttp.fileContent#
</cfoutput>


<!--- これは POST リクエストを受け取って処理する cfhttpparamexample.cfm ページです。ここで生成された 
HTML 出力がレスポンス本文になります。 --->

<h3>渡された変数の出力</h3>
<cfoutput>
   フォーム変数:#form.form_test#
   <br>URL 変数:#URL.url_test#
   <br>Cookie 変数:#Cookie.cookie_test#
   <br>CGI 変数:#CGI.cgi_test#<br>
   <br>CGI 変数に URL エンコードが行われていることに注目してください。
</cfoutput>
TYPE  
  必須
 

情報のタイプです。

  • header: HTTP ヘッダを指定します。ColdFusion はこのヘッダの URL エンコードを行いません。
  • CGI: HTTP ヘッダを指定します。ColdFusion はデフォルトでこのヘッダの URL エンコードを行います。
  • body: HTTP リクエストの本文を指定します。ColdFusion は、Content-Type ヘッダまたは本文にふくまれる URL エンコードの設定を自動的に行いません。Content-Type を指定するには、type=header が指定された個別の cfhttp タグを使用します。
  • XML: リクエストの content-type が text/xml であると識別します。value 属性に HTTP リクエストの本文が含まれることを示します。宛先 URL に XML を送信するときに使用します。ColdFusion はこの XML データの URL エンコードを行いません。
  • file: 指定のファイルのコンテンツを送信することを ColdFusion に指示します。ColdFusion はこのファイルコンテンツの URL エンコードを行いません。
  • URL: cfhttp の url 属性に URL クエリー文字列の名前と値のペアを付加することを示します。ColdFusion はこのクエリー文字列の URL エンコードを行います。
  • formField: 送信するフォームフィールドを指定します。ColdFusion はデフォルトでフォームフィールドの URL エンコードを行います。
  • cookie: HTTP ヘッダとして送信する Cookie を指定します。ColdFusion はこの Cookie の URL エンコードを行います。
NAME  
  必須 Body タイプと XML タイプではオプションであり、無視されます。
 

渡されるデータの変数名です。Body タイプと XML タイプでは無視されます。File タイプの場合は、このリクエストで送信するファイル名を指定します。

VALUE  
  必須 File タイプではオプションであり、無視される
 

送信されるデータの値です。File タイプでは無視されます。type 属性が Body 以外のときは、文字列データまたは ColdFusion が文字列に変換できるデータが値に含まれる必要があります。Body タイプのときは、文字列またはバイナリ値を指定できます。

FILE  
  type="File" の場合のみ必須
 

File タイプに適用されます。他のタイプでは無視されます。リクエスト本文の中で送信されるファイルへの絶対パスを指定します。

ENCODED  
  オプション
 
Default value: "yes"

FormField タイプと CGI タイプに適用されます。他のタイプでは無視されます。フォームフィールドまたはヘッダに URL エンコードを行うかどうかを指定します。

MIMETYPE  
  オプション
 

File タイプに適用されます。他のタイプでは無効です。ファイルコンテンツの MIME メディアタイプを指定します。このコンテンツタイプには、ファイルの文字エンコードの識別子を含めることができます。たとえば text/html; charset=ISO-8859-1 は、そのファイルが ISO Latin-1 文字エンコードの HTML テキストであることを示します。