1

同じアプリケーション用にASP.NETWebアプリケーションとAndroidUIを開発しようとしています。私はアンドロイドに不慣れです。テキストボックスとボタンを備えたシンプルな画面を開発しました。何かを入力してボタンをクリックすると、テキストがデータベースに保存されます。

今、私は複雑な機能に移行しています。登録フォームを実装する必要があります。モバイル画面にさらにテキストボックスを配置します。そのため、オブジェクト内のWebサービスにそれらを渡すことを計画しています。

C#でWebサービスを作成しました。メソッドレジスタは、オブジェクトCustomerをパラメータとして受け取ります。顧客クラスには、名前、電子メール、電話などのいくつかのフィールドがあります。

androindからC#Webサービスにオブジェクトを渡す機能を実装し、返されたオブジェクト値にアクセスするための例をガイド/提案してください。

AndroidWebサービスにKSoap2を使用しています。ありがとう

4

2 に答える 2

1

さまざまな方法でサービスを実装できます。いくつかの例は次のとおりです。

クライアント(Androidアプリケーション)からサービスにJSONでデータを送信できます。このサービス内で、このJSON表記を.netオブジェクトに変換する何かを実装する必要があります。これにはJSON.netを使用できます。これについての詳細は、ここで見つけることができます:

http://james.newtonking.com/projects/json-net.aspx

これを覚えておく必要があります:

  1. クライアント(Android)からのデータをJSON表記の文字列にシリアル化します。
  2. データをサービスに送信します
  3. リクエストを.NETオブジェクトに逆シリアル化します。(一部のフレームワークはこれを行います)
  4. .NETオブジェクトを使用して何かを実行し、クライアントに応答を返します

Androidの例を次に示します。

http://sarangasl.blogspot.nl/2011/10/android-web-service-access-tutorial.html http://www.youtube.com/watch?v=v9EowBVgwSo

これがお役に立てば幸いです。

于 2012-09-27T06:51:57.330 に答える
0

おそらく具体的な例も役立つでしょう。AndroidHttpClientを呼び出してHttpPostを実行できると仮定すると、単純なasp.net mvcコントローラーアクションを利用して投稿を(xmlとして)処理し、それに応じてxml(またはその他)を返して解析できます。

asp.net mvcアクションについては、次のようなものを試してください(http://foo.com/Something/ProcessSomethingにルーティングされます)。

...

[ ValidateInput(false)
]
public class SomethingController : Controller
{
  ...

  [ HttpPost
  ]
  public ActionResult ProcessSomething(SomeParameters Parameters, String Options)
  {
    ...

    String sProcessed = Parameters.Descriptor.ParamA + Parameters.Descriptor.ParamB;

    ...

    return this.Content
      ( String.Format
        ( "<result><processed>{0}</processed></result>"
        , sProcessed
        )
      , "text/xml"
      );
  }

  /// <summary>
  /// Description of a view model instance.
  /// </summary>

  [ XmlRoot("something")
  ]
  public class SomethingDescriptor
  {
    private String _ParamA = String.Empty;
    private String _ParamB = String.Empty;

    [ XmlElement("paramA")
    ]
    public String ParamA
    {
      set
      {
        this._ParamA = value;
      }
      get
      {
        return this._ParamA;
      }
    }

    [ XmlElement("paramB")
    ]
    public String ParamB
    {
      set
      {
        this._ParamB = value;
      }
      get
      {
        return this._ParamB;
      }
    }

  }

  /// <summary>
  /// View parameter deserializer.
  /// </summary>

  public class SomethingParameters
  {
    private SomethingDescriptor _Descriptor = new SomethingDescriptor();

    public SomethingDescriptor Descriptor
    {
      get
      {
        return this._Descriptor;
      }
    }

    public String Something
    {
      set
      {
        try
        {
          using (StringReader sR = new StringReader(value))
          {
            XmlSerializer xS = new XmlSerializer(typeof(SomethingDescriptor));

            this._Descriptor = xS.Deserialize(sR) as SomethingDescriptor;
          }
        }
        catch
        {
        }
      }
      get
      {
        return String.Empty;
      }
    }

  }

}

Androidアプリは、「Something = <something> <paramA> this is pA </ paramA> <paramB> this is paramB </ paramB></something>」などの変数をhttp://foo.com/Somethingに投稿します。 / ProcessSomethingを実行し、ユーザーに何かをレンダリングするために使用できるxmlを取得します。

于 2012-10-10T08:25:35.113 に答える