2014年02月07日
無料でブログを自動更新するプログラムを作ってみる その2 XMLRPCの理解
ここの説明はスルーしても動くには動く話。
このプログラムを作るために、一から全部作るのは不可能で、
ブログのエンドポイントに接続するためのAPI。
ネットアプリケーションと接続するためのAPI。
エンドポイントに渡すオブジェクトを生成するために使うAPI。
これを利用しながら、プログラムを書いているようです。
まずは、これを知ることで、今後の構築に応用をきかせていきます。
1.XMLRPC APIを学ぶ。
Javaからブログを更新するためには、XMLRPCのエンドポイントに接続をする
必要があるということは、前回も述べました。
その接続に必要なAPIがapache XMLRPCです。それも前回述べました。
そして、ブログに投稿するためにimportすべきjarファイルは、
・org.apache.xmlrpc.XmlRpcException
・org.apache.xmlrpc.client.XmlRpcClient;
・org.apache.xmlrpc.client.XmlRpcClientConfigImpl;
この3つであることがわかりました。
それぞれの役割は下記のように解釈しました。(間違っているかもしれません。理解不足は確か)
org.apache.xmlrpc.XmlRpcException
上記は、サーバとの通信に失敗したときにThrowするようにインポートします。
org.apache.xmlrpc.client.XmlRpcClient
上記クラスのsetConfigメソッドと、excuteメソッドを実行します。
setConfigでは、下記XmlRpcClientConfigImplにてsetServerURLに持たせた
URLエンドポイントに対して、クライアント側の設定を開始します。
excuteでは、XmlRpcRequestを行い、リスト型、オブジェクト型で定義した
値をエンドポイントに向けて発信します。
org.apache.xmlrpc.client.XmlRpcClientConfigImpl
クライアント要求のデフォルトの実装とのことです。
ここでは、上記にも記載していますが、setServerURLとして、
java.net.URLクラスに、エンドポイントのURLを持たせています。
うーん、自分で書いててプチ混乱してきましたw
ソース自体は上記を意識しなくても使えるのだが、それじゃ、プログラマーじゃないよな。。。
2.使用するCore API
・java.net.MalformedURLException;
・java.net.URL;
・java.text.DateFormat;
・java.text.ParseException;
・java.util.Hashtable;
はい、使ったことのないAPIでてきましたので、勉強します。
java.net.MalformedURLException
java.net自体の説明としては、
「ネットワークアプリケーションを実装するためのクラスを提供します。」とのこと。
MalformedURLException自体は、不正な形式の URL が見つかったことを示すためにスローされます。下記に示すURLを使うときのエラー対策ですね。
java.net.URL
String 表現から URL オブジェクトを生成します。
URLを表現するオブジェクトを生成するためのもの。そのままですな。
java.text.DateFormat
ブログの更新日付として持たせる値を使うときに使います。
DateFormat は、言語に依存しない方法で日付または時刻をフォーマットおよび解析する。
DateFormat. getDateInstance()で、デフォルトの日付フォーマットを指定し、
parse("2014/02/07")などで成形するために使用。
java.text.ParseException
上記とセットです。 解析中に予想外のエラーが発生したことを表すシグナルです。
java.util.HashMap
これも初めて使うな。
このクラスは、ハッシュテーブルを実装するためのもので、キーを値にマップします。
null オブジェクト以外であれば、どのオブジェクトでもキーや値に使用することができます。
今の時点では、ピンと来ていません。
put(K key, V value)というメソッドをつかうので、キー値とバリュー値をセットで持たせる。
これ、連想配列という技術で、HashTableとか、C#と変わらないみたいだな。
HashMapはHashtableと違って、同期はとらないらしい。いまのところ使う予定はないから、
このままで。
使い方としては、ブログのタイトルや本文などのキーを指定、その内容をバリュー値に持たせるというイメージかな。
3.上記APIを使って実際に更新する動きの確認。
XmlRpcClientConfigImplのsetServerURLメソッドにブログのエンドポイントのURLを持たせる
XmlRpcClientのsetConfigにて、URLにアクセス
HashMapにて、ブログの更新に必要なタイトルや本文をputしてひと塊をつくる。
配列型のオブジェクトを生成して、
ログインに必要なメールアドレスやパスワードなどのデータを持たせる。
そのオブジェクトの中の一つに、HashMapのひと塊も持たせる。
XmlRpcClientのsetConfigメソッドにて、上記オブジェクトを発信。
ブログが更新される。
といった流れ。次回は実際に更新されるかどうかを公開。
どこが自動化なの?という疑問がわくと思います。
ただ、API叩いて更新しているだけじゃんと。
自動化はJenkinsや、Tomcatをcronにて定期実行させることで可能。
データは、DBやtwitter、外部ニュースサイトから引用する技術があります。
そこまでの知識や実装経験はあります。
ただプログラムがしょぼくて載せるかは微妙。
このプログラムを作るために、一から全部作るのは不可能で、
ブログのエンドポイントに接続するためのAPI。
ネットアプリケーションと接続するためのAPI。
エンドポイントに渡すオブジェクトを生成するために使うAPI。
これを利用しながら、プログラムを書いているようです。
まずは、これを知ることで、今後の構築に応用をきかせていきます。
1.XMLRPC APIを学ぶ。
Javaからブログを更新するためには、XMLRPCのエンドポイントに接続をする
必要があるということは、前回も述べました。
その接続に必要なAPIがapache XMLRPCです。それも前回述べました。
そして、ブログに投稿するためにimportすべきjarファイルは、
・org.apache.xmlrpc.XmlRpcException
・org.apache.xmlrpc.client.XmlRpcClient;
・org.apache.xmlrpc.client.XmlRpcClientConfigImpl;
この3つであることがわかりました。
それぞれの役割は下記のように解釈しました。(間違っているかもしれません。理解不足は確か)
org.apache.xmlrpc.XmlRpcException
上記は、サーバとの通信に失敗したときにThrowするようにインポートします。
org.apache.xmlrpc.client.XmlRpcClient
上記クラスのsetConfigメソッドと、excuteメソッドを実行します。
setConfigでは、下記XmlRpcClientConfigImplにてsetServerURLに持たせた
URLエンドポイントに対して、クライアント側の設定を開始します。
excuteでは、XmlRpcRequestを行い、リスト型、オブジェクト型で定義した
値をエンドポイントに向けて発信します。
org.apache.xmlrpc.client.XmlRpcClientConfigImpl
クライアント要求のデフォルトの実装とのことです。
ここでは、上記にも記載していますが、setServerURLとして、
java.net.URLクラスに、エンドポイントのURLを持たせています。
うーん、自分で書いててプチ混乱してきましたw
ソース自体は上記を意識しなくても使えるのだが、それじゃ、プログラマーじゃないよな。。。
2.使用するCore API
・java.net.MalformedURLException;
・java.net.URL;
・java.text.DateFormat;
・java.text.ParseException;
・java.util.Hashtable;
はい、使ったことのないAPIでてきましたので、勉強します。
java.net.MalformedURLException
java.net自体の説明としては、
「ネットワークアプリケーションを実装するためのクラスを提供します。」とのこと。
MalformedURLException自体は、不正な形式の URL が見つかったことを示すためにスローされます。下記に示すURLを使うときのエラー対策ですね。
java.net.URL
String 表現から URL オブジェクトを生成します。
URLを表現するオブジェクトを生成するためのもの。そのままですな。
java.text.DateFormat
ブログの更新日付として持たせる値を使うときに使います。
DateFormat は、言語に依存しない方法で日付または時刻をフォーマットおよび解析する。
DateFormat. getDateInstance()で、デフォルトの日付フォーマットを指定し、
parse("2014/02/07")などで成形するために使用。
java.text.ParseException
上記とセットです。 解析中に予想外のエラーが発生したことを表すシグナルです。
java.util.HashMap
これも初めて使うな。
このクラスは、ハッシュテーブルを実装するためのもので、キーを値にマップします。
null オブジェクト以外であれば、どのオブジェクトでもキーや値に使用することができます。
今の時点では、ピンと来ていません。
put(K key, V value)というメソッドをつかうので、キー値とバリュー値をセットで持たせる。
これ、連想配列という技術で、HashTableとか、C#と変わらないみたいだな。
HashMapはHashtableと違って、同期はとらないらしい。いまのところ使う予定はないから、
このままで。
使い方としては、ブログのタイトルや本文などのキーを指定、その内容をバリュー値に持たせるというイメージかな。
3.上記APIを使って実際に更新する動きの確認。
XmlRpcClientConfigImplのsetServerURLメソッドにブログのエンドポイントのURLを持たせる
XmlRpcClientのsetConfigにて、URLにアクセス
HashMapにて、ブログの更新に必要なタイトルや本文をputしてひと塊をつくる。
配列型のオブジェクトを生成して、
ログインに必要なメールアドレスやパスワードなどのデータを持たせる。
そのオブジェクトの中の一つに、HashMapのひと塊も持たせる。
XmlRpcClientのsetConfigメソッドにて、上記オブジェクトを発信。
ブログが更新される。
といった流れ。次回は実際に更新されるかどうかを公開。
どこが自動化なの?という疑問がわくと思います。
ただ、API叩いて更新しているだけじゃんと。
自動化はJenkinsや、Tomcatをcronにて定期実行させることで可能。
データは、DBやtwitter、外部ニュースサイトから引用する技術があります。
そこまでの知識や実装経験はあります。
ただプログラムがしょぼくて載せるかは微妙。
この記事へのコメント
https://www.ringeraja.hr/forum/comprar_Carisoprodol_%26_Carisoprodol_2_mg_caja_con_100_precio/m_978777/tm.htm
https://www.ringeraja.hr/forum/köpa_Armodafinil_%40_Köp_Armodafinil_online_nästa_dag_leverans/m_981927/tm.htm
https://www.ringeraja.hr/forum/xybilun_avis_|_Vente_xybilun_avis_Sans_Ordonnance/m_960363/tm.htm
https://www.ringeraja.hr/forum/prix_propecia_(_Vente_prix_propecia_En_Ligne/m_960343/tm.htm