2014-09-19 88 views
0

以下JQuery代碼從本地web api獲取聯繫人。但是,我不知道如何從SERVER SIDE調用外部WEB API?從服務器訪問MVC Web API

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

看一看HttpClient的類:http://msdn.microsoft.com/en-us/library/system.net.http.httpclient(v=vs 0.118)的.aspx – Allov 2014-09-19 13:31:48

回答

0

您可以使用System.Net.WebClient從WebApi獲得結果。這假設您正在使用.Net 4.5或更高版本。

所以你的代碼看起來像這樣;

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

結果是要成爲一個JSON字符串,所以你會想要將字符串反序列化爲一個對象。

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

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

通過調用應用程序的遠程服務器,以獲得真正異步fuctionality,你應該使用DownloadStringTaskAsync方法而不是syncronous DownloadString。 Here是一個很好的問題。

而且例如從那裏:

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