常常使用個網站的API 時
有時候就會需要透過 後台 的部分取值
使用 HttpWebRequest 取值是最直接 也需要最小心的部分
這個也可以當作爬蟲使用 爬取目前網頁的 html 來取得 想要的資訊
System.Net.HttpWebRequest request = (System.Net.HttpWebRequest)System.Net.WebRequest.CreateHttp(URL);
//這邊通常是依需求改變的執行方法
request.Method = "GET";
//這邊也有可能會依需求而改變需要取得的 Type
request.ContentType = "application/json";
//有時候需要加上這行 才能爬到 網站的資訊 ((因為有些網站 會防止程式去爬取他們的網頁資訊 所以需要透過下面這行幫忙偽裝一下
request.UserAgent = "Mozilla/4.0 (compatible;MSIE 6.0;Windows NT 5.2;.NET CLR 1.1.4322)";
有些人習慣 在 URL 後面加上需要傳的參數
我這邊則是用 正規的方式
string param = "Adata=Avalue&Bdata=Bvalue&Cdata=Cvalue";
//編碼器
System.Text.UTF8Encoding encoding = new System.Text.UTF8Encoding();
//再轉成byte的方式
byte[] bytes = encoding.GetBytes(data);
request.ContentLength = bytes.Length;
using (System.IO.Stream requestStream = request.GetRequestStream())
{
// 寫入資訊
requestStream.Write(bytes, 0, bytes.Length);
}
//取得回傳訊息 經過這行 代表真的傳送出去上面所有的資訊之 指定的 URL 現在就是要取得回傳資訊
System.Net.HttpWebResponse response = (System.Net.HttpWebResponse)(request.GetResponse());
//建置讀取回傳資訊的 Stream
var dataStream = response.GetResponseStream();
//開啟IO 讀取 裡面的資訊 我習慣上會寫成一個字串
System.IO.StreamReader reader = new System.IO.StreamReader(dataStream);
string responseFromServer = reader.ReadToEnd();
//關閉讀寫器 養成習慣
reader.Close();
//關閉 esponseStream()
dataStream.Close();
//關閉 網頁 回傳器
response.Close();
其中 responseFromServer 就是 該網頁資訊 有可能是 空白的 也有可能是 JSON字串 也可能是 XML字串 也有可能是 該網頁HTML
再來就式解析放是日後再介紹~~
發表評論
此篇評論