以下JQuery代码从本地web api获取联系人。但是,我想知道如何从SERVER SIDE调用外部WEB API?
$(function () {
$.getJSON('/api/contact', function (data) {
$(data).each(function (i, item) {
$('#contacts').append('<li>' + item.Name + '</li>');
});
});
});
答案 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);
}