[英]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.