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 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. Es sind viele SQL Anywhere-Webservice-Funktionen verfügbar, die unter diesem Thema nicht alle behandelt werden können.

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 SampleXMLService herstellen möchten, der mit den folgenden SQL-Anweisungen erstellt wurde:



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

CREATE PROCEDURE sp_echo2(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 HTTP-Servers finden Sie unter Kurzeinführung zur Verwendung von SQL Anywhere als HTTP-Webserver.

 Zugriff auf einen XML-Webdienst mithilfe von C# oder Python
  1. Schreiben Sie Code, der auf den Webdienst SampleXMLService 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/SampleXMLService?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_numeric = attrs.getValue( 'ret_f' )
                  print('%s %s %s' % ( table_int, table_string, table_numeric ))
      
      parser = xml.sax.make_parser()
      parser.setContentHandler( DocHandler() )
      parser.parse('http://localhost:8082/SampleXMLService?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