HttpFormData (クラス)
public HttpFormData {inherits {Array-of HttpFormParam}, HttpRequestData}
インポート元: CURL.GUI.STANDARD. package 内で定義されています CURL.IO.HTTP.

RFC 1867、RFC 2388、および HTML 4.01 仕様に記述されている HTML フォーム送信のスタイル (旧式の URL エンコード スタイルも含む) で、データをフォーマットするのに使用するクラス。フォーム データを表す HttpFormParam のセットを保持します。

注意事項

HttpRequestData.request-data を実装し、さらに新しいメソッド HttpFormData.request-data-urlencoded-string を提供します。このメソッドは、フォーム データから Url のクエリ ストリングを生成するのに使用されます。

|| make an HttpFormData, will default to multipart posting
let form-data:HttpFormData = {new HttpFormData}
|| add a string parameter
{form-data.append {new HttpFormStringParam, "field1", "value1"}}
let u:Url = {url "http://www.example.com/some-file.txt"}
|| add a files parameter, with one file in it
{form-data.append
    {new HttpFormFilesParam,
        "field2",
        u.filename,
        {read-bytes-from u}
    }
}

|| now send our 2 parameter form to a webserver
let post-url:Url = {url "http://www.example.com/cgi-bin/script"}
|| will throw an HttpException if it can't get to
|| post-url, or if it returns some failure status code
let tis:TextInputStream =
    {({post-url.instantiate-File} asa HttpFile).http-read-open
        request-method = HttpRequestMethod.post,
        request-data = form-data
    }
let buf:StringBuf = {new StringBuf}
|| read in the contents that the server sent back
{try
    {tis.read-one-string buf = buf}
 finally
    || close the stream, since we read everything in
    {tis.close}
}

コンストラクタ
default:HttpFormData を作成します。
コンストラクタ public {HttpFormData.default
mime-type:String = HttpFormData.multipart-mime-type,
default-character-encoding:CharEncoding = CharEncoding.ascii,
urlencoded-separator:String = "&",
multipart-boundary:#String = null
}

プロパティ
content-type:リクエスト データの Content-Type。
アクセサ public HttpFormData.content-type:#String
default-character-encoding:HttpFormData.defaultdefault-character-encoding パラメータを参照してください。
アクセサ public HttpFormData.default-character-encoding:CharEncoding
セッター public HttpFormData.default-character-encoding:CharEncoding
mime-type:データのエンコードに使用する mime-type。
アクセサ public HttpFormData.mime-type:String
セッター public HttpFormData.mime-type:String
multipart-boundary:HttpFormData.defaultmultipart-boundary パラメータを参照してください。
アクセサ public HttpFormData.multipart-boundary:String
セッター public HttpFormData.multipart-boundary:#String
urlencoded-separator:HttpFormData.defaulturlencoded-separator パラメータを参照してください。
フィールド public constant HttpFormData.urlencoded-separator:String ="&"
プロパティ 継承 Array-of: efficient-size, for-loop-count, size, underlying-FastArray
プロパティ 継承 Association-of: empty?, key-type
プロパティ 継承 Aggregate-of: element-type

クラス変数と定数
multipart-mime-type:RFC 1867 と RFC 2388 に規定されている新しいスタイルのフォーム データ エンコーディングに対する MIME タイプ名。このスタイルはあらゆる種類のデータを扱えますが、URL のクエリ ストリングでは使用されません。この MIME タイプ用のデータは、HttpFormData の各パラメータに対する HttpFormParam.request-data-multipart-bytes により得られます。
public constant HttpFormData.multipart-mime-type:String ="multipart/form-data"
urlencoded-mime-type:古いスタイルのフォーム データ エンコーディングの MIME タイプ名。この MIME タイプは文字セットの使用に柔軟性がなく、ファイルのアップロードもできませんが、データ量が少ない場合に URL のクエリ ストリングとして使用できます。この MIME タイプ用のデータは、HttpFormData の各パラメータに対する HttpFormParam.request-data-urlencoded-bytes または HttpFormParam.request-data-urlencoded-string により得られます。
public constant HttpFormData.urlencoded-mime-type:String ="application/x-www-form-urlencoded"

メソッド
request-data:self 中の各 HttpFormParam から派生したデータ。このデータは HTTP リクエストと共に送信されます。
public {HttpFormData.request-data}:{Array-of byte}
request-data-urlencoded-string:self 中の各 HttpFormParam から派生したデータ。"application/x-www-form-urlencoded" (つまり HttpFormData.urlencoded-mime-type) スタイル エンコーディング用にフォーマットされています。self.mime-typeHttpFormData.urlencoded-mime-type である必要があります。
public {HttpFormData.request-data-urlencoded-string}:String
メソッド 継承 Array-of: append, clear, clone, clone-range, concat, equal?, filter-clone, filter-keys-clone, get, get-if-exists, in-bounds?, insert, object-serialize, pop, push, remove, reverse, set, set-size, sort, splice, top-of-stack
メソッド 継承 Sequence-of: filter, filter-keys, find, key-exists?, keys-to-Iterator, to-Iterator
メソッド 継承 Association-of: get-key, get-key-if-exists
メソッド 継承 Object: object-describe, object-describe-for-debugging



コンストラクタ詳細
default (コンストラクタ)
public {HttpFormData.default
mime-type:String = HttpFormData.multipart-mime-type,
default-character-encoding:CharEncoding = CharEncoding.ascii,
urlencoded-separator:String = "&",
multipart-boundary:#String = null
}

HttpFormData を作成します。

mime-type: データのエンコード フォーマット。HttpFormData.urlencoded-mime-type または HttpFormData.multipart-mime-type のどちらかになります。
default-character-encoding: HttpFormParam に含まれる文字列データを扱うときに使用する character-encoding の既定値。このパラメータは、HttpFormStringParam が character-encoding を指定しない場合に HttpFormStringParam 中の文字列データに対してのみ使用されます。このパラメータは、MIME 関連のヘッダーとセパレータ文字列をバイト列に変換するために使用する character-encoding も指定します。CharEncoding.ascii をサブセットとして持つ CharEncoding を使用します。通常は、HttpFormData.urlencoded-mime-type フォーマットのデータに対して CharEncoding.ascii をサブセットとして持たないエンコーディングを使用する必要がある場合を除いて、CharEncoding.ascii を使用します。このパラメータは対象データで使用されているエンコーディングと互換性があるか、同一である必要があります。
urlencoded-separator: 各パラメータを区切るための Stringmime-typeHttpFormData.urlencoded-mime-type である場合に使用します。標準の値は "&" です。
multipart-boundary: 各パラメータを区切るための Stringmime-typeHttpFormData.multipart-mime-type である場合に使用します。このパラメータが null の場合、必要に応じて値が生成されます。この区切りの文字列は、送信するデータには存在しない一意の文字列であることが必要です。



プロパティ詳細
content-type (アクセサ)
アクセサ public HttpFormData.content-type:#String

リクエスト データの Content-Type。

説明

この文字列は、リクエスト ヘッダー内に "Content-Type" の値として置かれます。

注意事項

これは HttpFormData.mime-type で、場合によっては HttpFormData.default-character-encoding に基づく文字セット (charset) パラメータも含まれています。


default-character-encoding (アクセサ)
アクセサ public HttpFormData.default-character-encoding:CharEncoding
セッター public HttpFormData.default-character-encoding:CharEncoding

HttpFormData.defaultdefault-character-encoding パラメータを参照してください。



mime-type (アクセサ)
アクセサ public HttpFormData.mime-type:String
セッター public HttpFormData.mime-type:String

データのエンコードに使用する mime-type。

説明

この文字列は、HttpFormData.content-type が提供する "Content-Type" ヘッダーの一部としても使用されます。

注意事項

HttpFormData.urlencoded-mime-type または HttpFormData.multipart-mime-type のどちらかでなければなりません。


multipart-boundary (アクセサ)
アクセサ public HttpFormData.multipart-boundary:String
セッター public HttpFormData.multipart-boundary:#String

HttpFormData.defaultmultipart-boundary パラメータを参照してください。



urlencoded-separator (フィールド)
public constant HttpFormData.urlencoded-separator:String ="&"

HttpFormData.defaulturlencoded-separator パラメータを参照してください。




クラス変数と定数の詳細
multipart-mime-type (クラス定数)
public constant HttpFormData.multipart-mime-type:String ="multipart/form-data"

RFC 1867 と RFC 2388 に規定されている新しいスタイルのフォーム データ エンコーディングに対する MIME タイプ名。このスタイルはあらゆる種類のデータを扱えますが、URL のクエリ ストリングでは使用されません。この MIME タイプ用のデータは、HttpFormData の各パラメータに対する HttpFormParam.request-data-multipart-bytes により得られます。



urlencoded-mime-type (クラス定数)
public constant HttpFormData.urlencoded-mime-type:String ="application/x-www-form-urlencoded"

古いスタイルのフォーム データ エンコーディングの MIME タイプ名。この MIME タイプは文字セットの使用に柔軟性がなく、ファイルのアップロードもできませんが、データ量が少ない場合に URL のクエリ ストリングとして使用できます。この MIME タイプ用のデータは、HttpFormData の各パラメータに対する HttpFormParam.request-data-urlencoded-bytes または HttpFormParam.request-data-urlencoded-string により得られます。





メソッド詳細
request-data (メソッド)
public {HttpFormData.request-data}:{Array-of byte}

self 中の各 HttpFormParam から派生したデータ。このデータは HTTP リクエストと共に送信されます。

注意事項

このデータのフォーマットは HttpFormData.mime-type によって変わります。


request-data-urlencoded-string (メソッド)
public {HttpFormData.request-data-urlencoded-string}:String

self 中の各 HttpFormParam から派生したデータ。"application/x-www-form-urlencoded" (つまり HttpFormData.urlencoded-mime-type) スタイル エンコーディング用にフォーマットされています。self.mime-typeHttpFormData.urlencoded-mime-type である必要があります。

注意事項

これは、フォーム データを伴う GET スタイルの HTTP リクエストで Url のクエリ ストリングにのみ使用するものです。