CGIKitはCGIライブラリとしての基本的な機能も備えています。RubyにはCGIライブラリが標準添付されていますが、通常CGIKitと併用する必要はありません。
フォームデータはCKRequestオブジェクトから取得することができます(CKRequestオブジェクトはCKComponent#request()
メソッドで取得できます)。クエリ、標準入力のどちらの送信方法でも使用するメソッドは同じです。フォームデータはハッシュとして扱われ、各キーに対して配列がセットされています。また、マルチパートのフォームデータは文字列ではなくCKByteDataオブジェクトになります。
メソッド | 説明 |
---|---|
form_values() |
フォームデータのハッシュを返す。 |
form_value(key),[key] |
キーkey の配列の最初のオブジェクト(文字列)を返す。キーが存在しなければnil を返す。 |
class MainPage < CKComponent def get_form_value value = request[‘key’] ... end end
CKUtilitiesモジュールにHTMLテキストとURLの特殊文字をエスケープするメソッドがあります。escape_html()
、escape_url()
メソッドでエスケープを、unescape_html()
、unescape_url()
メソッドでエスケープした文字列を元に戻すことができます。
CKRequestオブジェクトにはHTTPヘッダの値がセットされており、ヘッダ名を指定して環境変数を取得することができます。また、特定の環境変数にはアクセスメソッドも用意してあります。
メソッド | 説明 |
---|---|
headers() |
HTTPヘッダのハッシュを返す。 |
accept() |
HTTP_ACCEPT |
accept_charset() |
HTTP_ACCEPT_CHARSET |
accept_language() |
HTTP_ACCEPT_LANGUAGE |
auth_type() |
AUTH_TYPE |
content_length() |
CONTENT_LENGTH |
content_type() |
CONTENT_TYPE |
from() |
HTTP_FROM |
gateway_interface() |
GATEWAY_INTERFACE |
path_info() |
PATH_INFO |
path_translated() |
PATH_TRANSLATED |
query_string() |
QUERY_STRING |
raw_cookie() |
HTTP_COOKIE |
referer() |
HTTP_REFERER |
remote_addr() |
REMOTE_ADDR |
remote_host() |
HTTP_HOST |
remote_ident() |
REMOTE_IDENT |
remote_user() |
REMOTE_USER |
request_mothed() |
REQUEST_METHOD |
script_name() |
SCRIPT_NAME |
server_name() |
SERVER_NAME |
server_port() |
SERVER_PORT |
server_protocol() |
SERVER_PROTOCOL |
server_software() |
SERVER_SOFTWARE |
uri(), url() |
REQUEST_URI |
user_agent() |
HTTP_USER_AGENT |
CKRequest#headers()
メソッドでHTTPヘッダのパラメータのハッシュを取得できます。
HTTPレスポンスヘッダはCKResponseオブジェクトに設定します。headers
属性にレスポンスヘッダの内容をハッシュの形式で設定してください。
class MainPage < CKComponent def set_http_response_header response.headers['Content-Type'] = 'text/html' end end
CKRequest・CKResponseオブジェクトはそれぞれCKComponent#request()
、response()
メソッドで取得できます。