使用WebApi,在MVC客户端中使用服务的最佳方式是什么?
如果回复如下:
<?xml version="1.0" encoding="UTF-8"?>
<ArrayOfContact
xmlns:xsd="http://www.w3.org/2001/XMLSchema"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<Contact>
<Id>1</Id>
<Name>Bilbo Baggins</Name>
</Contact>
<Contact>
<Id>2</Id>
<Name>Frodo Baggins</Name>
</Contact>
</ArrayOfContact>
如何使用@Model获取我的联系人并将其列在MVC3 Razor View中?
有一个lot of examples online用于WebApi的最新预览,但我找不到任何更进一步的内容并显示客户使用服务,比如使用WebClient。
谢谢,
R上。
答案 0 :(得分:5)
您可以定义模型:
public class Contact
{
public int Id { get; set; }
public string Name { get; set; }
}
然后消费:
var url = "http://localhost:9000/api/contacts";
using (var client = new WebClient())
using (var reader = XmlReader.Create(client.OpenRead(url)))
{
var serializer = new XmlSerializer(typeof(Contact[]));
var contacts = (Contact[])serializer.Deserialize(reader);
// TODO: Do something with the contacts
}
答案 1 :(得分:5)
WCF Web API附带了一个新的,改进的HttpClient实现。 请查看this sample(包含在您可以下载的源代码here中)。
[更新]
var client = new HttpClient();
var task = client.GetAsync("http://webapi/Contacts");
var contacts = task.ContinueWith(
t => {
return t.Result.Content.ReadAsAsync<List<Contact>>();
}).Unwrap().Result;
Console.WriteLine(contacts.Count);