このレッスンでは、POST メソッドを使用して要求を Web サーバに送信し、Web サーバの応答を受信するデータベースクライアントを設定します。
前提条件
このレッスンは、レッスン 1 で説明したように Web サーバが設定されていることを前提としています。このレッスンで説明している、Web クライアントからの要求を受信するデータベースサーバの設定の詳細については、レッスン 1:要求を受信して応答を送信する Web サーバの設定を参照してください。
このレッスンでは、このチュートリアルの開始時に、権限のセクションで一覧されているロールと権限を持っていることを前提としています。 チュートリアル:Web サーバを作成し、Web クライアントからアクセスします。
内容と備考
このレッスンには、localhost への複数の参照が含まれています。Web クライアントを Web サーバと同じコンピュータで実行していない場合は、localhost の代わりにレッスン 1 の Web サーバのホスト名または IP アドレスを使用します。
Web クライアントのプロシージャを含めるために使用する SQL Anywhere データベースを作成します。
dbinit -dba DBA,sql echo_client |
このデータベースを使用して、ネットワークデータベースサーバを起動します。このサーバは Web クライアントとして動作します。
dbsrv16 echo_client.db |
Interactive SQL を使用して、データベースサーバに接続します。
dbisql -c "UID=DBA;PWD=sql;SERVER=echo_client" |
要求を Web サービスに送信する新しいストアドプロシージャを作成します。
CREATE OR REPLACE PROCEDURE SendWithMimeType( value LONG VARCHAR, mimeType LONG VARCHAR, urlSpec LONG VARCHAR ) URL '!urlSpec' TYPE 'HTTP:POST:!mimeType'; |
SendWithMimeType プロシージャには 3 つのパラメータがあります。value パラメータは、Web サービスに送信する要求の本文を表します。urlSpec パラメータは、Web サービスに接続するために使用する URL を示します。mimeType は、HTTP:POST に使用する MIME タイプを示します。
要求を Web サーバに送信し、応答を取得します。
CALL SendWithMimeType('<hello>this is xml</hello>', 'text/xml', 'http://localhost:8082/EchoService' ); |
http://localhost:8082/EchoService 文字列は、localhost で実行されポート 8082 で受信する Web サーバを示します。対象となる Web サービスの名前は EchoService です。
異なる MIME タイプを試し、応答を確認します。
CALL SendWithMimeType('{"menu": { "id": "file", "value": "File", "popup": { "menuitem": [{"value": "New", "onclick": "CreateNew()"}, {"value": "Open", "onclick": "Open()"}, {"value": "Close", "onclick": "Close()"} ] } } }', 'application/json', 'http://localhost:8082/EchoService' ); |
例
次は、Interactive SQL によって表示される結果セットの例です。
Attribute | Value |
---|---|
Status | HTTP/1.1 200 OK |
Body | <hello>this is xml</hello> |
Server | SQLAnywhere/16.0.1234 |
Expires | Tue, 09 Oct 2012 21:06:01 GMT |
Date | Tue, 09 Oct 2012 21:06:01 GMT |
Content-Type | text/xml; charset=windows-1252 |
Connection | close |
次に、Web サーバに送信される HTTP パケットの例を示します。
POST /EchoService HTTP/1.0 ASA-Id: 46758096650a44088c77237cc8719d5c User-Agent: SQLAnywhere/16.0.1234 Accept-Charset: windows-1252, UTF-8, * Date: Tue, 09 Oct 2012 21:06:01 GMT Host: localhost:8082 Connection: close Content-Type: text/xml; charset=windows-1252 Content-Length: 26 <hello>this is xml</hello> |
Web サーバからの応答は次のようになります。
HTTP/1.1 200 OK Date: Tue, 09 Oct 2012 21:06:01 GMT Connection: close Expires: Tue, 09 Oct 2012 21:06:01 GMT Content-Type: text/xml; charset=windows-1252 Server: SQLAnywhere/16.0.1234 <hello>this is xml</hello> |
![]() |
DocCommentXchange で意見交換できます
|
Copyright © 2013, SAP AG or an SAP affiliate company. - SAP Sybase SQL Anywhere 16.0 |