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 サービス » Web クライアントを使用した Web サービスへのアクセス

 

SQL Anywhere を Web クライアントとして使用するためのクイックスタート

この項では、SQL Anywhere を Web クライアントアプリケーションとして使用して SQL Anywhere HTTP サーバに接続し、一般的な HTTP Web サービスにアクセスする方法について説明します。SQL Anywhere Web クライアントの機能全般については説明しません。このトピックで説明するもの以外にも、数多くの SQL Anywhere Web クライアントの機能を使用できます。

あらゆるタイプのオンライン Web サーバに接続する SQL Anywhere Web クライアントアプリケーションを開発できますが、この項では、ローカル SQL Anywhere HTTP サーバをポート 8082 で起動し、次の SQL 文を使用して作成された SampleHTMLService という Web サービスに接続することを前提としています。



CREATE SERVICE SampleHTMLService
    TYPE 'HTML'
    USER DBA
    AUTHORIZATION OFF
    AS CALL sp_echo(:i, :f, :s);

CREATE PROCEDURE sp_echo(i INTEGER, f REAL, s LONG VARCHAR)
RESULT(ret_i INTEGER, ret_f REAL, ret_s LONG VARCHAR)
BEGIN
    SELECT i, f, s;
END;

SQL Anywhere Web クライアントアプリケーションを作成するには、次のタスクを実行します。

  1. SQL Anywhere クライアントデータベースが存在しない場合、次のコマンドを実行して作成します。

    dbinit -dba DBA,sql client-database-name

    client-database-name をクライアントデータベースの新しい名前に置き換えます。

  2. 次のコマンドを実行して、クライアントデータベースを起動します。

    dbsrv16 client-database-name.db
  3. 次のコマンドを実行して、Interactive SQL を通じてクライアントデータベースに接続します。

    dbisql -c "UID=DBA;PWD=sql;SERVER=client-database-name"
  4. 次の SQL 文を使用して、SampleHTMLService Web サービスに接続する新しいクライアントプロシージャを作成します。

    CREATE PROCEDURE client_post(f REAL, i INTEGER, s VARCHAR(16), x VARCHAR(16))
        URL 'http://localhost:8082/SampleHTMLService'
        TYPE 'HTTP:POST'
        HEADER 'User-Agent:SATest';
  5. 次の SQL 文を実行して、クライアントプロシージャを呼び出し、Web サーバに HTTP 要求を送信します。

    CALL client_post(3.14, 9, 's varchar', 'x varchar');

client_post によって作成された HTTP POST 要求は、次のような出力になります。



POST /SampleHTMLService HTTP/1.0
ASA-Id: ea1746b01cd0472eb4f0729948db60a2
User-Agent: SATest
Accept-Charset: windows-1252, UTF-8, *
Date: Wed, 9 Jun 2010 21:55:01 GMT
Host: localhost:8082
Connection: close
Content-Type: application/x-www-form-urlencoded; charset=windows-1252
Content-Length: 58

&f=3.1400001049041748&i=9&s=s%20varchar&x=x%20varchar

Web サーバ上で実行される Web サービス SampleHTMLService によって ifs の各パラメータ値が POST 要求から抽出され、パラメータとして sp_echo プロシージャに渡されます。パラメータ値 x は無視されます。sp_echo プロシージャで結果セットが作成されて Web サービスに返されます。正しく対応付けられるように、クライアントと Web サービスの間でパラメータ名を決めておくことが重要です。

Web サービスで応答が作成されてクライアントに送り返されます。Interactive SQL に表示される出力は次のようになります。

Attribute Value
Status HTTP /1.1 200 OK
Body


<html>
<head>
<title>/SampleHTMLService</title></head>
<body>
<h3>/SampleHTMLService</h3>
<table border=1>
<tr class="header"><th><b>ret_i</b></th>
<th><b>ret_f</b></th>
<th><b>ret_s</b></th>
</tr>
<tr><td>9</td><td>3.1400001049041748</td><td>s varchar</td>
Date Wed, 09 Jun 2010 21:55:01 GMT
Connection close
Expires Wed, 09 Jun 2010 21:55:01 GMT
Content-Type text/html; charset=windows-1252
Server SQLAnywhere/16.0
 参照