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

SQL Anywhere 12.0.1 (Deutsch) » SQL Anywhere Server - Programmierung » HTTP-Webdienste » Zugriff auf Webdienste mithilfe von Webclients

 

Kurzeinführung zur Verwendung von SQL Anywhere als Webclient

Dieses Thema veranschaulicht die Verwendung von SQL Anywhere als Webclientanwendung, über die eine Verbindung zu einem SQL Anywhere-HTTP-Server hergestellt sowie auf einen allgemeinen HTTP-Webdienst zugegriffen werden kann. Sie veranschaulicht nicht den vollen Umfang der Fähigkeiten des SQL Anywhere-Webclients. Es sind viele SQL Anywhere-Webclient-Funktionen verfügbar, die unter diesem Thema nicht alle behandelt werden können.

Folgende Aufgaben werden durchgeführt:

  • Erstellen und Starten eines SQL Anywhere-Webclients

  • Erstellen einer Prozedur, die eine Verbindung zu einem Webdienst auf einem HTTP-Server herstellt

  • Durchführen von Vorgängen auf der vom HTTP-Server gesendeten Ergebnismenge

Sie können SQL Anywhere-Webclientanwendungen entwickeln, die eine Verbindung zu jedem beliebigen Online-Webserver herstellen, aber in dieser Einführung wird davon ausgegangen, dass Sie einen lokalen SQL Anywhere-HTTP-Server auf Port 8082 gestartet haben und eine Verbindung zu einem Webdienst mit dem Namen SampleHTMLService herstellen möchten, der mit den folgenden SQL-Anweisungen erstellt wurde:



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;

Weitere Hinweise zum Einrichten eines HTTP-Servers finden Sie unter Kurzeinführung zur Verwendung von SQL Anywhere als HTTP-Webserver.

 Erstellen einer SQL Anywhere-Webclientanwendung
  1. Führen Sie den folgenden Befehl aus, um eine SQL Anywhere-Clientdatenbank zu erstellen, falls noch keine existiert:

    dbinit client-database-name

    Ersetzen Sie Clientdatenbank-Name durch einen neuen Namen für Ihre Clientdatenbank.

  2. Führen Sie den folgenden Befehl aus, um die Clientdatenbank zu starten:

    dbsrv12 client-database-name.db
  3. Führen Sie den folgenden Befehl aus, um eine Verbindung zur Clientdatenbank mithilfe von Interactive SQL herzustellen:

    dbisql -c "UID=DBA;PWD=sql;SERVER=client-database-name"
  4. Erstellen Sie eine neue Clientprozedur, die eine Verbindung zum Webdienst SampleHTMLService mithilfe der folgenden SQL-Anweisung herstellen:

    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. Führen Sie die folgende SQL-Anweisung aus, um die Clientprozedur aufzurufen und eine HTTP-Anforderung an den Webserver zu senden:

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

Die von client_post erstellte HTTP POST-Anforderung sieht in etwa wie folgt aus.



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

Der Webdienst SampleHTMLService auf dem Webserver extrahiert die Parameterwerte für i, f und s aus der POST-Anforderung und übergibt sie als Parameter an die Prozedur sp_echo. Parameterwert x wird ignoriert. Die Prozedur sp_echo erstellt eine Ergebnismenge, die an den Webdienst zurückgegeben wird. Dabei ist anzumerken, dass eine Vereinbarung der Parameternamen zwischen dem Client und dem Webserver für die richtige Zuordnung wichtig ist.

Der Webdienst erstellt die Antwort, die an den Client zurückgesendet wird. Die in Interactive SQL angezeigte Ausgabe sollte ähnlich wie die folgende Ausgabe sein:

Attribut Wert
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/12.0.1
 Siehe auch