In dieser Lektion richten Sie einen Datenbankclient ein, um Anforderungen mit der POST-Methode an einen Webserver zu senden und die Antworten des Webservers zu empfangen.
Voraussetzungen
In dieser Lektion wird davon ausgegangen, dass Sie einen Webserver gemäß den Anweisungen in Lektion 1 eingerichtet haben. Weitere Hinweise zum Einrichten eines Datenbankservers für den Empfang der Anforderungen von dem in dieser Lektion beschriebenen Webclient finden Sie unter Lektion 1: Webserver für das Empfangen von Anforderungen und das Senden von Antworten einrichten.
In dieser Lektion wird davon ausgegangen, dass Sie die Rollen und Privilegien haben, die im Abschnitt "Privilegien" am Anfang dieser praktischen Einführung aufgeführt sind: Praktische Einführung: Webserver erstellen und über einen Webclient darauf zugreifen.
Kontext und Bemerkungen
Diese Lektion enthält mehrere Verweise auf localhost. Verwenden Sie statt localhost den Hostnamen oder die IP-Adresse des Webservers aus Lektion 1, wenn der Webclient nicht auf demselben Computer ausgeführt wird wie der Webserver.
Erstellen Sie eine SQL Anywhere-Datenbank, die verwendet wird, um Webclient-Prozeduren zu speichern.
dbinit -dba DBA,sql echo_client |
Starten Sie einen Netzwerk-Datenbankserver mit dieser Datenbank. Dieser Server fungiert als Webclient.
dbsrv16 echo_client.db |
Stellen Sie über Interactive SQL eine Verbindung mit dem Datenbankserver her.
dbisql -c "UID=DBA;PWD=sql;SERVER=echo_client" |
Erstellen Sie eine neue gespeicherte Prozedur zum Senden von Anforderungen an einen Webdienst.
CREATE OR REPLACE PROCEDURE SendWithMimeType( value LONG VARCHAR, mimeType LONG VARCHAR, urlSpec LONG VARCHAR ) URL '!urlSpec' TYPE 'HTTP:POST:!mimeType'; |
Die SendWithMimeType-Prozedur hat drei Parameter. Der value-Parameter stellt den Hauptteil der Anforderung dar, die an den Webdienst gesendet werden soll. Der urlSpec-Parameter gibt die URL an, die für die Verbindung mit dem Webdienst verwendet werden soll. mimeType gibt an, welcher MIME-Typ für HTTP:POST verwendet werden soll.
Senden Sie eine Anforderung an den Webserver und rufen Sie die Antwort ab.
CALL SendWithMimeType('<hello>this is xml</hello>', 'text/xml', 'http://localhost:8082/EchoService' ); |
Die http://localhost:8082/EchoService-Zeichenkette gibt an, dass der Webserver auf localhost ausgeführt wird und Port 8082 abhört. Der gewünschte Webdienst hat den Namen EchoService.
Probieren Sie einen anderen MIME-Typ aus und beobachten Sie die Antwort.
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' ); |
Beispiel
Das folgende Beispiel ist eine Ergebnismenge, wie sie von Interactive SQL angezeigt wird:
Attribut | Wert |
---|---|
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 |
Der folgende Code zeigt das HTTP-Paket, das an den Webserver gesendet wird:
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> |
Der folgende Code zeigt die Antwort vom Webserver:
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> |
![]() |
Kommentieren Sie diese Seite in DocCommentXchange.
|
Copyright © 2013, SAP AG oder ein SAP-Konzernunternehmen. - SAP Sybase SQL Anywhere 16.0 |