我正在开发一个使用第三方.asmx
网络服务的应用。我在我的应用程序中使用PCL(便携式类库)。
所以我想在我的应用中使用这些.asmx
网络服务。问题是PCL不支持传统的Web服务即.asmx
。它支持WCF
Web服务。
我看了很多文章,他们建议我从wsdl
写WCF
网络服务。但由于所有Web服务都是第三方,我需要在客户端应用程序中编写代理(在调用Web服务的地方),以便将WCF
调用转换为.asmx
。
我也尝试过使用PCL这个例子。 我正在使用this asmx网络服务
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);
}
但我没有得到任何结果。 所以有人知道如何做到吗??
答案 0 :(得分:1)
尤里卡我找到了它..
使用以下代码段
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
变量中。只需获取所需的数据并将其返回给调用客户端。