49.1.4 CookiesおよびHTTPヘッダーの取得
Oracle APEXでサポートされているメソッドのいずれかを使用してWebサービスを起動すると、WebサービスのレスポンスにCookieまたはHTTPヘッダーが含まれていた場合、g_response_cookies
およびg_headers
グローバルが移入されます。これらのグローバルを問い合せて、コレクションに情報を格納できます。
APEXでサポートされているメソッドのいずれかを使用してWebサービスを起動すると、g_status_code
グローバルにレスポンスの数値HTTPステータス・コード(200または404など)が移入されます。g_response_cookies
およびg_headers
グローバルは、Webサービス・レスポンスにCookieまたはHTTPヘッダーが含まれている場合に移入されます。
次に、APEX_WEB_SERVICE
グローバルを問い合せて、CookieおよびHTTPヘッダーのレスポンスをコレクションに格納する例を示します。
DECLARE
i number;
secure varchar2(1);
BEGIN
apex_collection.create_or_truncate_collection('P31_RESP_COOKIES');
FOR i in 1.. apex_web_service.g_response_cookies.count LOOP
IF (apex_web_service.g_response_cookies(i).secure) THEN
secure := 'Y';
ELSE
secure := 'N';
END IF;
apex_collection.add_member(p_collection_name => 'P31_RESP_COOKIES',
p_c001 => apex_web_service.g_response_cookies(i).name,
p_c002 => apex_web_service.g_response_cookies(i).value,
p_c003 => apex_web_service.g_response_cookies(i).domain,
p_c004 => apex_web_service.g_response_cookies(i).expire,
p_c005 => apex_web_service.g_response_cookies(i).path,
p_c006 => secure,
p_c007 => apex_web_service.g_response_cookies(i).version );
END LOOP;
END;
DECLARE
i number;
BEGIN
apex_collection.create_or_truncate_collection('P31_RESP_HEADERS');
FOR i in 1.. apex_web_service.g_headers.count LOOP
apex_collection.add_member(p_collection_name => 'P31_RESP_HEADERS',
p_c001 => apex_web_service.g_headers(i).name,
p_c002 => apex_web_service.g_headers(i).value,
p_c003 => apex_web_service.g_status_code);
END LOOP;
END;
親トピック: APEX_WEB_SERVICE APIについて