我想询问一个情况。我们考虑使用不同的技术编写相同的Web服务。例如web api web服务,.asmx web服务,wcf web服务,java xml web服务......等。 通常,如果我想调用此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);
编辑:所有网络服务都有相同的方法和属性
答案 0 :(得分:1)
如果您的soap服务与wsdl完全相同,但使用不同的技术创建,您可以使用一个代码安静地调用它们。此外,您可以使用任何技术来创建客户端,可以使用soap服务。如果这些服务不是soap服务,那么如果所有服务都在等待相同的xml数据,那么您已经可以使用单一代码和代码来处理它们。在这种情况下,您可以使用HttpClient
类向它们发送请求。此外,HttpClient
是更通用的方式来调用任何http端点独立于其内部技术,但它需要更多的工作,使其工作,然后其他。