2015-10-14 26 views
0

我想问一个情况。我们考虑用不同的技术编写相同的Web服务。例如web api web服务,.asmx web服务,wcf web服务,java xml web服务等。 通常,如果我想调用这个web服务,我应该编写不同的代码。 是否有可能使用相同的代码调用这种技术服务?我能怎么做 ?下面的代码是调用不同类型的技术服务的虚拟代码。用C#调用具有相同代码的所有类型的Web服务?

//calling web api web service 

    client.BaseAddress = new Uri("http://localhost:9000/"); 
    client.DefaultRequestHeaders.Accept.Clear(); 
    client.DefaultRequestHeaders.Accept.Add(new MediaTypeWithQualityHeaderValue("application/xml")); 

    HttpResponseMessage response = await client.GetAsync("api/products/1"); 
    if (response.IsSuccessStatusCode) 
    { 
     Product product = await response.Content.ReadAsAsync>Product>(); 
     Console.WriteLine("{0}\t${1}\t{2}", product.Name, product.Price, product.Category); 
    } 

    //calling asmx web service 

    localhost.WebService client = new localhost.WebService(); 
    client.Products(1); 

编辑:所有的Web服务都有相同的方法和属性

回答

1

如果你有完全一致的WSDL SOAP服务,但使用不同的技术创建的,你可以用一个代码和平给他们打电话。此外,您可以使用任何技术来创建客户端,可以使用soap服务。如果这个服务不是soap服务,如果他们都在等待相同的xml数据,那么你可以使用单一的代码来处理它们。在这种情况下,您可以使用HttpClient类向它们发送请求。此外,HttpClient是更独立于其内部技术的任何http端点调用方式,但它需要更多的工作才能使其起作用。

+0

你可以给我samo代码示例来调用HttpClient吗?我只知道在web api中使用httpclient调用。你可以举一个例子来调用asmx或wcf服务吗?谢谢你的回答。 – altandogan

+0

例如,我找到了一个asmx Web服务的示例,https://quirkd.wordpress.com/2015/01/24/shorts-consuming-a-wcf-asmx-web-service-in-winrt/ – altandogan

相关问题