2012-09-27 91 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。