アフィリエイト広告を利用しています


スキル無しのシステムインストラクターから、システムエンジニアへの転身日記。
◇◆◇ 2013年取得資格
LPICレベル1
LPICレベル2
LPICレベル3 Core
LPICレベル3 Speciality 302
LPICレベル3 Speciality 303
LPICレベル3 Speciality 304

Cisco CCENT
Cisco CCNA

Java SE 7 Silver
Java SE 7 GOLD

OSS-DB Silver

◇◆◇ 2014年取得資格
HTML5 Professional レベル1

広告

posted by fanblog

無料でブログを自動更新するプログラムを作ってみる その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、外部ニュースサイトから引用する技術があります。
そこまでの知識や実装経験はあります。
ただプログラムがしょぼくて載せるかは微妙。

コメント

お名前: [必須入力]

メールアドレス:

ホームページアドレス:

コメント: [必須入力]

認証コード: [必須入力]


※画像の中の文字を半角で入力してください。

   
×

この広告は30日以上新しい記事の更新がないブログに表示されております。