// 下階層用テンプレート #topicpath ---- //ここにコンテンツを記述します。 #contents **HttpUnitのTips集 [#xfe7ccab] ***HttpUnitの概要 [#v0085cbc] http://objectclub.esm.co.jp:8080/xp/29 ~ HttpUnitとはブラウザをエミュレーションするツールで...ようするにWEBサイトにアクセスしたりWEBアプリケーションの単体テストをしたりするときに有効なAPI群です。また、HttpConnectionのWrapperのような使い方もできます。 ***基本的な使い方 [#ydd4a11b] //メインのクラスを作成 WebConversation conversation = new WebConversation(); //リクエストを作成 WebRequest request = new GetMethodWebRequest("http://www.masatom.in/pukiwiki/index.php?cmd=rss10"); //メインクラス経由でレスポンスクラスを取得 WebResponse response = conversation.getResponse(request); //そこからDOMを作成 Document document = response.getDOM(); ***プロクシ経由にしたい場合 [#jc23e1ea] conversation.setProxyServer("127.0.0.1", 8000); ***基本認証を行いたい場合 [#ye5e692d] conversation.setAuthorization(userid, password); たぶんこれと同じ。 BASE64Encoder encoder = new BASE64Encoder(); conversation.setHeaderField( "Proxy-Authorization", "Basic " + encoder.encode((userid + ":" + password).getBytes())); ***サンプル [#o5ef1fa1] System.out.println("Start."); WebConversation conversation = new WebConversation(); WebRequest request = new GetMethodWebRequest("http://www.masatom.in/pukiwiki/index.php?cmd=rss10"); conversation.setProxyServer("127.0.0.1", 8000); WebResponse response = conversation.getResponse(request); System.out.println(response.getCharacterSet()); System.out.println(response); Document document = response.getDOM(); System.out.println("End."); *** key=value形式でないクエリを投げる [#oe6bef6c] SOAPがXMLをPOSTするように、文字列データをBody使ってPOSTする場合は以下のようにします。 ByteArrayInputStream stream = new ByteArrayInputStream(new String("ほげ") .getBytes("UTF-8")); //文字列をUTFでバイト列にして、そのストリーム作成 WebRequest request = new PostMethodWebRequest( "http://[サーバ名]/HttpUnitTest/SampleServlet", stream, "text/plain; charset=utf-8"); WebResponse response = conversation.getResponse(request); これでUTF-8でクエリを投げます。 ---- この記事は #vote(おもしろかった[17],そうでもない[1],Getting Startとして役にたった[8]) -選択肢を追加してまで投票してくださってありがとうございました。 -- [[きの]] &new{2004-05-31 (月) 20:04:45}; -SOAPの様にBodyでXMLを投げる場合は、"text/xml; charset=utf-8" とかにするといいですね。 -- [[きの]] &new{2006-02-16 08:29:59 (木)}; #comment #topicpath SIZE(10){現在のアクセス:&counter;}