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

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

 

Kurzeinführung für den Zugriff auf einen SQL Anywhere-HTTP-Webserver

Diese Kurzeinführung veranschaulicht, wie Sie mithilfe von zwei verschiedenen Arten von Clientanwendungen, Python und C#, auf einen SQL Anywhere-HTTP-Webserver zugreifen. Sie veranschaulicht nicht den vollen Umfang der Fähigkeiten der SQL Anywhere-Webdienstanwendung. Über den Umfang dieser Kurzeinführung hinaus sind viele SQL Anywhere-Webdienstfunktionen verfügbar.

Folgende Aufgaben werden durchgeführt:

  • 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 SampleWebService herstellen möchten, der mit dem folgenden SQL-Skript erstellt wurde:



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

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

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

 ♦  So greifen Sie mithilfe von C# oder Python auf einen XML-Webdienst zu
  1. Schreiben Sie Code, der auf den Webdienst SampleWebService zugreift.

    • Für C# verwenden Sie den folgenden Code:



      using System;
      using System.Xml;
      
      public class WebClient {
          static void Main(string[] args) {
              XmlTextReader reader = new XmlTextReader( "http://localhost:8082/demo/SampleWebService?i=5&f=3.14&s=hello" );
      
              while( reader.Read() ) {
                  switch( reader.NodeType ) {
                      case XmlNodeType.Element:
                          if( reader.Name == "row" ) {
                              Console.Write(reader.GetAttribute("ret_i") + " ");
                              Console.Write(reader.GetAttribute("ret_s") + " ");
                              Console.WriteLine(reader.GetAttribute("ret_f"));
                          }
                          break;
                  }
              }
              reader.Close();
          }
      }

      Speichern Sie den Code in einer Datei mit dem Namen DocHandler.cs.

      Um das Programm zu kompilieren, führen Sie den folgenden Befehl an der Eingabeaufforderung aus:

      csc /out:DocHandler.exe DocHandler.cs
    • Für Python verwenden Sie den folgenden Code:



      import xml.sax
      
      class DocHandler( xml.sax.ContentHandler ):
          def startElement( self, name, attrs ):
              if name == 'row':
                  table_int = attrs.getValue( 'ret_i' )
                  table_string = attrs.getValue( 'ret_s' )
                  table_float = attrs.getValue( 'ret_f' )
                  print '%s %s %s' % ( table_int, table_string, table_float )
      
      parser = xml.sax.make_parser()
      parser.setContentHandler( DocHandler() )
      parser.parse( 'http://localhost:8082/demo/SampleWebService?i=5&f=3.14&s=hello' )

      Speichern Sie den Code in einer Datei mit dem Namen DocHandler.py.

  2. Führen Sie die Anwendung aus.

    • Für C# führen Sie den folgenden Befehl aus:

      DocHandler
    • Für Python führen Sie den folgenden Befehl aus:

      python DocHandler.py

Die Anwendung zeigt die folgende Ausgabe an:

5 hello 3.14
 Siehe auch