用C#调用具有相同代码的所有类型的Web服务?
问题描述:
我想问一个情况。我们考虑用不同的技术编写相同的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服务都有相同的方法和属性
答
如果你有完全一致的WSDL SOAP服务,但使用不同的技术创建的,你可以用一个代码和平给他们打电话。此外,您可以使用任何技术来创建客户端,可以使用soap服务。如果这个服务不是soap服务,如果他们都在等待相同的xml数据,那么你可以使用单一的代码来处理它们。在这种情况下,您可以使用HttpClient
类向它们发送请求。此外,HttpClient
是更独立于其内部技术的任何http端点调用方式,但它需要更多的工作才能使其起作用。
你可以给我samo代码示例来调用HttpClient吗?我只知道在web api中使用httpclient调用。你可以举一个例子来调用asmx或wcf服务吗?谢谢你的回答。 – altandogan
例如,我找到了一个asmx Web服务的示例,https://quirkd.wordpress.com/2015/01/24/shorts-consuming-a-wcf-asmx-web-service-in-winrt/ – altandogan