簡體   English   中英

在pcl中使用asmx webservice

[英]Consume asmx webservice in pcl

我正在開發使用第三方.asmx Web服務的應用程序。 我在我的應用程序中使用PCL(便攜式類庫)。

所以我想在我的應用程序中使用那些.asmx Web服務。 問題是PCL不支持傳統的Web服務,即.asmx 它支持WCF Web服務。

我讀過很多文章,他們建議我從wsdl編寫WCF Web服務。 但是由於所有Web服務都是第三方,因此我需要在客戶端應用程序(調用Web服務的地方)中編寫代理,以便它將WCF調用轉換為.asmx

我也嘗試過使用PCL這個例子。 我正在使用 asmx Web服務

public class PerformLogIn : ILogInService
    {
         public string LogIn(string code)
         {
             ServiceReference1.WeatherSoapClient obj = new ServiceReference1.WeatherSoapClient();
             obj.GetCityForecastByZIPAsync(code);
             ServiceReference1.WeatherReturn get = new ServiceReference1.WeatherReturn();

             return (get.Temperature);
         }

但是我沒有任何結果。 那么有人知道該怎么做嗎?

我找到了尤里卡。

使用以下代碼段

public class PerformLogIn : ILogInService
    {
         public void LogIn(string code)
         {
             ServiceReference1.WeatherSoapClient obj = new ServiceReference1.WeatherSoapClient(
                                        new BasicHttpBinding(),
                                        new EndpointAddress("http://wsf.cdyne.com/WeatherWS/Weather.asmx"));

             obj.GetCityForecastByZIPAsync(code);
             obj.GetCityForecastByZIPCompleted+=getResult;
         }
         void getResult(Object sender,GetCityForecastByZIPCompletedEventArgs e)
         {
             string error = null;

             if (e.Error != null)
                 error = e.Error.Message;
             else if (e.Cancelled)
                 error = "cancelled";
             var result = e.Result; 
         }
   }

因此,您對Web服務的響應將存儲在result變量中。 只需獲取所需數據,然后將其返回給調用客戶端即可。

暫無
暫無

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

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