RestEasyをクライアントとしても使ってみる。
こちらで書いたRESTサーバに対してクライアントのコードを実装してみます。
クライアントについてもRESTEasyが実現してくれています。
まずはStringで受け取ってStringを標準出力へ。
次にResponseBeanという出力されるXMLが定義してあるJavaBeanで受け取ってみます。
package sample.sample.bean.client; import org.jboss.resteasy.client.ClientRequest; import org.jboss.resteasy.client.ClientResponse; import org.jboss.resteasy.plugins.providers.RegisterBuiltin; import org.jboss.resteasy.spi.ResteasyProviderFactory; import sample.sample.bean.ResponseBean; public class SampleClient { public static void main(String[] args) { // RESTEasy初期化 RegisterBuiltin.register(ResteasyProviderFactory.getInstance()); // アクセスするURLを指定 ClientRequest request = new ClientRequest( "http://localhost:8080/sample/sample/xx"); ClientResponse response; try { // リクエストをGETで投げてStringクラスで受ける response = request.get(String.class); String returnString = (String) response.getEntity(); System.out.println("ステータスコード:" + response.getStatus()); System.out.println("戻り値:" + returnString); // リクエストをGETで投げてResponseBeanクラスで受ける response = request.get(ResponseBean.class); ResponseBean responseBean = (ResponseBean) response.getEntity(); System.out.println("ステータスコード:" + response.getStatus()); System.out.println("戻り値 agent:" + responseBean.userAgent + " input:" + responseBean.inputString); } catch (Exception e) { e.printStackTrace(); } } }
標準出力へは下記が出力されます。
ステータスコード:200 戻り値:<?xml version="1.0" encoding="UTF-8" standalone="yes"?><response agent="Jakarta Commons-HttpClient/3.1"><input>xx</input></response> ステータスコード:200 戻り値 agent:Jakarta Commons-HttpClient/3.1 input:xx
Stringで受け取った場合はXMLを解釈しなくてはいけませんが、
Beanで受け取れるとそこの手間はなくJavaBeanが手に入ります。
RestClientとしてもEasyですね!