从服务器访问MVC Web API

时间:2014-09-19 13:28:18

标签: jquery asp.net-mvc asp.net-web-api

以下JQuery代码从本地web api获取联系人。但是,我想知道如何从SERVER SIDE调用外部WEB API?

$(function () {
            $.getJSON('/api/contact', function (data) {
                $(data).each(function (i, item) {
                    $('#contacts').append('<li>' + item.Name + '</li>');
                });
            });
});

2 个答案:

答案 0 :(得分:0)

您可以使用System.Net.WebClient从WebApi获取结果。假设您使用的是.Net 4.5或更高版本。

所以你的代码看起来像;

WebClient webClient = new WebClient();
var result = webClient.DownloadString("[YourUrl]");

结果是将成为Json字符串,因此您需要将字符串反序列化为Object。

因此,如果您要使用Newtonsoft.Json,您可以反序列化;

MyObject myObject = Newtonsoft.Json.JsonConvert.DeserializeObject<MyObject>(result);

答案 1 :(得分:0)

通过从应用程序调用远程服务器来获得真正的异步功能,您应该使用DownloadStringTaskAsync方法而不是同步的DownloadString。 Here是一个很好的问题。

从那里开始的例子:

private async void RequestData(string uri, Action<string> action)
{
    var client = new WebClient();
    string data = await client.DownloadStringTaskAsync(uri);
    action(data);
}