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

SQL Anywhere 12.0.1 » SQL Anywhere サーバー プログラミング » HTTP Web サービス » Web クライアントを使用した Web サービスへのアクセス

 

SQL Anywhere HTTP Web サーバーへのアクセスのクイックスタート

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

次のタスクが実行されます。

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

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

あらゆるタイプのオンライン 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;

HTTP サーバーの設定の詳細については、HTTP Web サーバーとして SQL Anywhere を使用するためのクイックスタートを参照してください。

 ♦ C# または Python を使用した XML Web サービスへのアクセス
  1. 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. アプリケーションを実行します。

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

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

      python DocHandler.py

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

5 hello 3.14
 参照