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 HTTP Web サーバへのアクセスのクイックスタート

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

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



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;

C# または Python を使用して XML Web サービスにアクセスするには、次のタスクを実行します。

  1. HTTP サーバ上で Web サービスに接続するプロシージャを作成します。

    SampleXMLService Web サービスにアクセスするコードを作成します。

    • C# の場合は、次のコードを入力します。



      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();
          }
      }

      このコードを DocHandler.cs というファイルに保存します。

      プログラムをコンパイルするには、コマンドプロンプトで次のコマンドを実行します。

      csc /out:DocHandler.exe DocHandler.cs
    • Python の場合は、次のコードを入力します。



      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')

      このコードを DocHandler.py というファイルに保存します。

  2. HTTP サーバによって送信された結果セットに対する操作を実行します。

    • C# の場合は、次のコマンドを実行します。

      DocHandler
    • Python の場合は、次のコマンドを実行します。

      python DocHandler.py

アプリケーションによって次の出力が表示されます。

5 hello 3.14
 参照