C#で更新Pingを実装(作りかけ) [コンピュータ]
C#で更新Pingを打つには、別途XML-RPCのモジュールを使うのが一般的らしいけど、それを使わないでできないか試してみました。
だってXML-RPCの仕様って、単にXMLデータをpost(getでもよい?)で送信するだけですよね?だったら標準のクラスで全部できるはず。
private void button1_Click(object sender, EventArgs e) {
//POST送信する文字列を作成
string postData = @"<?xml version=""1.0""?>"
+ "<methodCall>"
+ "<methodName>weblogUpdates.ping</methodName>"
+ "<params>"
+ "<param>"
+ "<value>とりカシュの8bit級ブログ</value>"
+ "</param>"
+ "<param>"
+ "<value>http://blog.so-net.ne.jp/torikashu/2007-11-03-1 </value>"
+ "</param>"
+ "</params>"
+ "</methodCall>";
//バイト型配列に変換
byte[] postDataBytes = System.Text.Encoding.UTF8.GetBytes(postData);
WebRequest req = WebRequest.Create("http://blog.goo.ne.jp/XMLRPC");
req.Method = "POST";
req.ContentType = "text/xml";
req.ContentLength = postDataBytes.Length;
System.IO.Stream reqStream = req.GetRequestStream();
reqStream.Write(postDataBytes, 0, postDataBytes.Length);
reqStream.Close();
System.Net.WebResponse res = req.GetResponse();
System.IO.Stream resStream = res.GetResponseStream();
System.IO.StreamReader sr = new System.IO.StreamReader(resStream, System.Text.Encoding.GetEncoding("Shift_JIS"));
this.textBox1.Text += sr.ReadToEnd();
sr.Close();
}
これで一応「成功」のメッセージは帰ってくるんだけど、どうもうまく検索されないみたい。きっとエンコードをしないとだめなんだろな。
もうちょっと研究してみよう。
※postの方法はDOBON.NETさんを参考にしました
http://dobon.net/vb/dotnet/internet/webrequestpost.html
コメント 0