簡體   English   中英

Mono for Android或Java和WCF

[英]Mono for Android or Java and WCF

我目前正在使用Mono for Android來開發移動應用程序。 我一直試圖通過添加Web引用來使用WCF Web服務,但我似乎無法以這種方式進行調用。 我現在正在考慮咬緊牙關並使用Java重寫代碼,我不像C#那樣擅長。

我有兩個問題:

  1. 如何使用Mono for android使用WCF Web服務。
  2. 如果我要使用java,我將如何調用如下所示的方法:

     [OperationContract] [WebInvoke(Method = "POST", UriTemplate = "/MyMethod", RequestFormat = WebMessageFormat.Json, ResponseFormat = WebMessageFormat.Json)] void MyMethod(CustomObjectFromDataContract c_Object); 

當我進行調用時,我得到一個MessageBox,其中顯示未處理的異常System.Net.WebException:。 當我進入代碼時,我發現當你打電話時會發生錯誤

  [System.Web.Services.Protocols.SoapDocumentMethodAttribute    ("http://tempuri.org/IMyService/MyMethod", RequestNamespace="http://tempuri.org/",    ResponseNamespace="http://tempuri.org/", Use=System.Web.Services.Description.SoapBindingUse.Literal, ParameterStyle=System.Web.Services.Protocols.SoapParameterStyle.Wrapped)]
    public void MyMethod([System.Xml.Serialization.XmlElementAttribute(IsNullable=true)]   CustomObjectFromDataContract c_Object) {
    this.Invoke("MyMethod", new object[] {
                    c_Object});
    }

調用是拋出異常的那個。

我已經解決了這個問題。 以下是使其工作的步驟:1。服務必須是RESTful服務2.而不是引用Localhost(我在生成的代碼中)使用主機的IP地址。 我認為這是因為Android在Dalvik VM中運行,我懷疑它與我的Dev計算機使用的本地主機不同。 我做到了,我的服務現在有效。

如果添加Web引用,則應生成一些包含客戶端的引用類。 然后,您可以創建生成的客戶端的實例,並在客戶端上調用MyMethod

因此,假設您使用的是Visual Studio,只需右鍵單擊MonoDroid項目>添加Web引用,然后輸入WCF服務的URL。

要調用它,您可以執行以下操作:我已添加對具有名稱空間Example.WebReference的服務的引用

然后我會用以下方式調用它:

Example.WebReference.ServiceElement client = new Example.WebReference.ServiceElement();
var output = client.MyMethod(parameter);

希望這可以幫助。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM