2011-09-30 46 views
4

我有一個API,我想調用並獲取響應。然後我想將該響應分配給一個變量。如何從Web API調用獲得響應

我有一個像API:

http://example.org/Webservicesms_get_userbalance.aspx?user=xxxx&passwd=xxxx 

當我在瀏覽器中運行這個URL,它打印短信平衡。我希望將此短信餘額作爲回覆,然後將其分配給我的網頁中的變量。

+0

ajax電話可能會完成您的工作... –

+0

@Yves M你可以請描述?? –

+0

你有什麼嘗試,哪個部分給你帶來問題?例如,您使用過哪些搜索詞已空白?請回答編輯問題以添加此信息... –

回答

6

你的服務是一個.aspx頁面,它只是返回文本(短信餘額),沒有HTML? 如果這樣你就可以「刮它

string urlData = String.Empty; 
WebClient wc = new WebClient(); 
urlData = wc.DownloadString("http://domainname/Webservicesms_get_userbalance.aspx?user=xxxx&passwd=xxxx"); 
6

您還可以使用WebRequest類。

WebRequest request = WebRequest.Create ("http://domainname/Webservicesms_get_userbalance.aspx?user=xxxx&passwd=xxxx"); 

// Get the response. 
HttpWebResponse response = (HttpWebResponse)request.GetResponse(); 

// Get the stream containing content returned by the server. 
Stream dataStream = response.GetResponseStream(); 
// Open the stream using a StreamReader for easy access. 
StreamReader reader = new StreamReader (dataStream); 
// Read the content. 
string responseFromServer = reader.ReadToEnd(); 
// Display the content. 
Console.WriteLine (responseFromServer); 
// Cleanup the streams and the response. 
reader.Close(); 
dataStream.Close(); 
response.Close(); 

當然,您可以將Console.WriteLine更改爲您想要做的任何迴應。

+0

+1;這可能是我見過的比較常見的例子。但是,爲什麼它優於尼爾給出的答案呢?它會使用舊代碼嗎?您需要包含更少的程序集才能使其發揮作用嗎? –

+0

@ MerlynMorgan-Graham不要以爲我的答案優於尼爾的答案。有一件事我可以說WebClient需要STA線程來運行它。並且WebRequest在.NET 4,3.5,3.0,2.0,1.1,1.0中受支持,所以它應該可以工作。 –

+0

這比使用DownloadString更快。 – Animesh