Click here to view and discuss this page in DocCommentXchange. In the future, you will be sent there automatically.

SAP Sybase SQL Anywhere 16.0 » SQL Anywhere サーバ プログラミング » HTTP Web サービス » HTTP Web サービスの例 » チュートリアル:Web サーバを作成し、Web クライアントからアクセスします。

 

レッスン 2:Web クライアントからの要求の送信と応答の受信

このレッスンでは、POST メソッドを使用して要求を Web サーバに送信し、Web サーバの応答を受信するデータベースクライアントを設定します。

前提条件

このレッスンは、レッスン 1 で説明したように Web サーバが設定されていることを前提としています。このレッスンで説明している、Web クライアントからの要求を受信するデータベースサーバの設定の詳細については、レッスン 1:要求を受信して応答を送信する Web サーバの設定を参照してください。

このレッスンでは、このチュートリアルの開始時に、権限のセクションで一覧されているロールと権限を持っていることを前提としています。 チュートリアル:Web サーバを作成し、Web クライアントからアクセスします。

内容と備考

このレッスンには、localhost への複数の参照が含まれています。Web クライアントを Web サーバと同じコンピュータで実行していない場合は、localhost の代わりにレッスン 1 の Web サーバのホスト名または IP アドレスを使用します。

 ♦ タスク
  1. Web クライアントのプロシージャを含めるために使用する SQL Anywhere データベースを作成します。

    dbinit -dba DBA,sql echo_client
  2. このデータベースを使用して、ネットワークデータベースサーバを起動します。このサーバは Web クライアントとして動作します。

    dbsrv16 echo_client.db
  3. Interactive SQL を使用して、データベースサーバに接続します。

    dbisql -c "UID=DBA;PWD=sql;SERVER=echo_client"
  4. 要求を 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 タイプを示します。

  5. 要求を Web サーバに送信し、応答を取得します。

    CALL SendWithMimeType('<hello>this is xml</hello>', 
        'text/xml', 
        'http://localhost:8082/EchoService'
    );

    http://localhost:8082/EchoService 文字列は、localhost で実行されポート 8082 で受信する Web サーバを示します。対象となる Web サービスの名前は EchoService です。

  6. 異なる 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'
    );

結果

Web クライアントは、POST メソッドを使用して HTTP 要求を Web サーバに送信し、Web サーバの応答を受信するように設定されます。

次は、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>

 参照