<C#>WebRequestとWebResponseを使ってみよう。
前回はXDocumentしか使用できないぞ!と嘆いておりました……
が、勉強の結果により、WebRequestとWebResponseを使用できるようになったのでサンプルコードを投下します。
一部行数短縮のため改変した部分もあるため、サンプルの後ろに解説を挟みます。
//今回使用する名前空間たち using System.Text; using System.Net; using System.IO; namespace ExperimentWebRequest { class Program { static void Main(string[] args) { //今回開くURL string str_URL = "https://api.eveonline.com/api/calllist.xml.aspx"; //今回の主役であるリクエストさんとレスポンスさん。 WebRequest Req = WebRequest.Create(str_URL); //Req.Method = "GET"; 参考にしたコードではGETを設定していましたが、WebRequest.Methodの規定値は"GET"なので省略 WebResponse Res = Req.GetResponse(); //レスポンスに基づいたストリームをリーダーに投げ、読み込んでいます。 StreamReader st_Reader = new StreamReader(Res.GetResponseStream(),new UTF8Encoding(false)); string ReadedXML = st_Reader.ReadToEnd(); } } }
StreamReaderの引数について
今回使用しているパターンでの引数は(Stream型,Encoding型)です。
他所のコードでは、下のように記述していることもあります。
なお、私は1回しか使用しないなら変数化する必要は無い。というスタンスであるため、サンプルのように記述しています。
Stream st = Res.GetResponseStream(); Encoding enc = new UTF8Encoding(false); StreamReader st_Reader = new StreamReader(st,enc);
なお、Encoding型についてはUTF-8なら上のように記述しますがシフトJISであるなら下記のように記述します。
Encoding.GetEncoing("shift_jis")
今回やってて気づいたのはライブラリ的なやつを使う場合はローカルが役に立たない(´・ω・`)
メソッドとかどうするんだこれー!状態であちこちから引きまくりですはい