2015-04-17 62 views
0

我在PHP中創建了一個API,在成功登錄後返回一些用戶信息。信息將以段落ID的HTML格式返回。下面是HTML數據返回的例子:通過獲取請求獲取html數據C#

<body> 
    <p id="msg">Successful login</p> 
    <p id="uid">1</p> 
    <p id="username">Joey</p> 
    <p id="email">[email protected]</p> 
    <p id="hwid"></p> 
    <p id="funds">0</p> 
</body> 

所以我想登錄數據發佈到API並獲得通過HTML-ID的信息。

的API:

api.php?set=login&username={USER}&password={PASS} 
+2

你的問題是?... – Eminem

+0

看WebClient/HttpWebRequest類 - 除非你特別想顯示它,否則XML將是一個更好的響應格式。 –

+0

您可能希望通過html-id獲取數據......但您不應該這樣做。您可以使用PHP和C#。將這些信息保存在變量中 –

回答

0

首先登場的 - 我建議使用JSON而不是HTML這個 - PHP有json_encode和json_decode - 然後你可以添加JSON.Net NuGet包進行反序列化在你的最後很容易。

echo json_encode(resultObject) 

,然後在C#

JsonConvert.DeserializeObject<ResultType>(downloadedString) 

然後,所有你需要做的是考慮HttpWebRequest和WebRequest的,從你的API下載該字符串

這看起來像

HttpWebRequest request = (HttpWebRequest)HttpWebRequest.Create("http://url/api"); 
HttpWebResponse response = (HttpWebResponse)request.GetResponse(); 
using (StreamReader reader = new StreamReader(response.GetResponseStream())) 
{ 
    String downloadedString = reader.ReadToEnd(); 
} 

或者,您可以將HTML處理爲XML

XmlDocument doc = new XmlDocument(); 
doc.Load(response.GetResponseStream()); 
String msg = doc.GetElementById("msg").Value;