2012-09-27 54 views
1

我正在尝试开发ASP.NET Web应用程序和Android UI以获取相同的应用程序。 我是新来的android。我开发了一个带有文本框和按钮的简单屏幕。 键入内容并单击该按钮,将文本保存到数据库中。对象参数和对象返回到Android的C#WebService

现在我正在转向复杂的功能。我需要实施注册表。我会在手机屏幕上放置更多文字框。所以我打算把它们传递给一个对象的Web服务。

我在C#中创建了一个web服务,方法注册以客户为参数。客户类有几个领域,如姓名,电子邮件,电话等

请指导/建议的例子来实现从androind到C#web服务传递对象的功能和访问返回的对象值。

我使用KSoap2 Android的web服务。 感谢

+0

对我有帮助吗?我使用KSoap2而不是Json。 – crazyTechie

回答

1

你可以以不同方式实现的服务。一些例子是:

你可以从客户端(Android应用程序)将数据发送到您的服务JSON。在这个服务里面,你应该实现一些东西把这个JSON表示法转换回.net对象。你可以使用JSON.net。关于这方面更多的信息,可以在这里找到:

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

你应该记住这一点:

  1. 序列化数据从客户端(安卓)以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

希望这有助于你出去。

0

也许一个具体的例子也是有用的。假设你可以调用AndroidHttpClient做一个HttpPost,你可以利用一个简单的asp.net mvc控制器动作来处理帖子(如xml),并相应地返回xml(或其他)来解析。

为你的asp。净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应用程序将发布一个变量,如“东西= <东西> < paramA上>这为PA </paramA上> <paramB>这是paramB </paramB > < /东西>“到http://foo.com/Something/ProcessSomething并返回它可以用来呈现给用户的xml。