Search in sources :

Example 6 with HttpClientImpl

use of jp.ossc.nimbus.service.http.httpclient.HttpClientFactoryService.HttpClientImpl in project nimbus by nimbus-org.

the class HttpResponseImplTest method testSetHttpMethod.

/**
 * HTTPメソッドを設定するテスト。
 * <p>
 * 条件:
 * <ul>
 * <li>定義ファイルをロードし、HttpClientFactoryServiceインスタンスを生成する</li>
 * <li>HttpRequestImpl#createRequest(論理アクション名)を実行し、HttpRequestを生成</li>
 * <li>生成したHttpRequestを指定して、HttpClientImpl#createHttpMethod()を実行</li>
 * <li>生成したMethodを指定して、HttpResponseImpl#setHttpMethod()を実行</li>
 * </ul>
 * 確認:
 * <ul>
 * <li>正常終了することを確認</li>
 * </ul>
 */
public void testSetHttpMethod() {
    try {
        if (!ServiceManagerFactory.loadManager("jp/ossc/nimbus/service/http/httpclient/service-clientTest.xml")) {
            System.exit(-1);
        }
        final HttpClientFactory factory = (HttpClientFactory) ServiceManagerFactory.getServiceObject("HttpClientFactory");
        HttpClientImpl client = (HttpClientImpl) factory.createHttpClient();
        HttpRequest request = factory.createRequest("login");
        HttpRequestImpl rec = (HttpRequestImpl) request;
        HttpMethodBase method = rec.createHttpMethod();
        client.client.executeMethod(method);
        HttpResponseImpl res = new HttpResponseImpl();
        res.setHttpMethod(method);
    } catch (Exception e) {
        e.printStackTrace();
        fail("例外発生");
    } finally {
        ServiceManagerFactory.unloadManager("jp/ossc/nimbus/service/http/httpclient/service-clientTest.xml");
    }
}
Also used : HttpRequest(jp.ossc.nimbus.service.http.HttpRequest) HttpMethodBase(org.apache.commons.httpclient.HttpMethodBase) HttpClientImpl(jp.ossc.nimbus.service.http.httpclient.HttpClientFactoryService.HttpClientImpl) HttpClientFactory(jp.ossc.nimbus.service.http.HttpClientFactory) ConvertException(jp.ossc.nimbus.util.converter.ConvertException) PropertySchemaDefineException(jp.ossc.nimbus.beans.dataset.PropertySchemaDefineException)

Example 7 with HttpClientImpl

use of jp.ossc.nimbus.service.http.httpclient.HttpClientFactoryService.HttpClientImpl in project nimbus by nimbus-org.

the class HttpClientFactoryServiceTest method testExecuteRequestWithNoRequestCharacterEncoding.

// /**
// * 指定された論理アクション名に該当するリクエストを発行するテスト。
// * <p>
// * 条件:
// * <ul>
// * <li>次の内容の定義ファイルをロードし、HttpClientFactoryServiceインスタンスを生成する</li>
// * <li>Journal,Sequenceサービス定義あり</li>
// * <li>RequestContentType:application/xml</li>
// * <li>RequestCharacterEncoding:Shift_JIS</li>
// * <li>RequestHeaders:Accept-Encoding=gzip</li>
// * <li>RequestStreamConverterServiceName:#DataSetXMLConverter</li>
// * <li>ResponseStreamConverterServiceName:#ResponseStreamConverter</li>
// * <li>Proxy:#localhost:8280</li>
// * <li>論理アクション名"login"のリクエスト情報を定義</li>
// * <li>HttpClientFactoryService#createHttpClient()を実行し、HttpClientを生成</li>
// * <li>HttpRequestImpl#createRequest(論理アクション名)を実行し、HttpRequestを生成</li>
// * <li>送信するデータセットを次の内容で生成し、HttpRequest#setObject()でセット<BR>
// * スキーマ::name,java.lang.String,,,\n:age,int,,,<BR>
// * 値   :name=hoge,age=25 </li>
// * <li>Proxy:#localhost:8280</li>
// * <li>生成したHttpRequestを指定して、HttpClientImpl#executeRequest(request)を実行</li>
// * </ul>
// * 確認:
// * <ul>
// * <li>送信先で指定した次の値がHTTPリクエストに正しく設定されていることを確認</li>
// * <li>レスポンスの内容が正しく設定されていることを確認</li>
// * </ul>
// */
// public void testExecuteRequestWithJournal() {
// try {
// if (!ServiceManagerFactory
// .loadManager("jp/ossc/nimbus/service/http/httpclient/service-clientTest3.xml")) {
// System.exit(-1);
// }
// final HttpClientFactory factory = (HttpClientFactory) ServiceManagerFactory
// .getServiceObject("HttpClientFactory");
// HttpClientImpl client = (HttpClientImpl) factory.createHttpClient();
// 
// DataSet requestDs = new DataSet("Login");
// requestDs.setHeaderSchema(
// "UserInfo",
// ":name,java.lang.String,,,\n"
// + ":age,int,,,"
// );
// Header userInfo = requestDs.getHeader("UserInfo");
// userInfo.setProperty("name", "hoge");
// userInfo.setProperty("age", 25);
// 
// HttpRequest request = factory.createRequest("login");
// request.setObject(requestDs);
// 
// HttpResponse res = client.executeRequest(request);
// //レスポンス内容の確認
// assertEquals(200, res.getStatusCode());
// assertEquals("testdata", res.getObject());
// 
// 
// /*Proxyテスト用プログラム(jp.ossc.nimbus.service.http.proxy.TestHttpProcessService)
// * の出力ファイルの内容を確認し、HTTPリクエストデータを検証
// */
// 
// BufferedReader br = new BufferedReader(
// new FileReader("jp/ossc/nimbus/service/http/httpclient/help_output.txt"));
// 
// String s;
// StringBuffer sb = new StringBuffer();
// //Requestヘッダの検証
// while((s = br.readLine()) != null){
// if(s.startsWith("Content-Type:")){
// assertTrue(s.endsWith("application/xml;charset=Shift_JIS"));
// }
// if(s.startsWith("Accept-Encoding")){
// assertTrue(s.endsWith("gzip"));
// }
// sb.append(s);
// }
// br.close();
// //DataSet内容の検証
// assertTrue(sb.toString().endsWith(
// "<dataSet name=\"Login\"><schema>" +
// "<header name=\"UserInfo\">:name,java.lang.String,,,:age,int,,,</header>" +
// "</schema><header name=\"UserInfo\">" +
// "<name>hoge</name><age>25</age></header></dataSet>"));
// //Journalの内容検証
// HttpClientFactoryService hcf = (HttpClientFactoryService)factory;
// final ObjectMappedEditorFinderService finder =
// (ObjectMappedEditorFinderService) ServiceManagerFactory.getServiceObject("JournalEditorFinder");
// 
// assertEquals("",hcf.journal.getCurrentJournalString(finder));
// 
// 
// 
// } catch (HttpRequestCreateException e) {
// e.printStackTrace();
// fail("例外発生");
// } catch (FileNotFoundException e) {
// e.printStackTrace();
// fail("例外発生");
// } catch (IOException e) {
// e.printStackTrace();
// fail("例外発生");
// } finally {
// ServiceManagerFactory
// .unloadManager("jp/ossc/nimbus/service/http/httpclient/service-clientTest3.xml");
// }
// }
/**
 * 指定された論理アクション名に該当するリクエストを発行するテスト。
 * <p>
 * 条件:
 * <ul>
 * <li>次の内容の定義ファイルをロードし、HttpClientFactoryServiceインスタンスを生成する</li>
 * <li>Journal,Sequenceサービス定義あり</li>
 * <li>RequestContentType:application/xml</li>
 * <li>RequestCharacterEncoding:指定なし</li>
 * <li>RequestHeaders:Accept-Encoding=gzip</li>
 * <li>RequestStreamConverterServiceName:#DataSetXMLConverter</li>
 * <li>ResponseStreamConverterServiceName:指定なし</li>
 * <li>Proxy:#localhost:8280</li>
 * <li>論理アクション名"login"のリクエスト情報を定義</li>
 * <li>HttpClientFactoryService#createHttpClient()を実行し、HttpClientを生成</li>
 * <li>HttpRequestImpl#createRequest(論理アクション名)を実行し、HttpRequestを生成</li>
 * <li>送信するデータセットを次の内容で生成し、HttpRequest#setObject()でセット<BR>
 * スキーマ::name,java.lang.String,,,\n:age,int,,,<BR>
 * 値   :name=hoge,age=25 </li>
 * <li>Proxy:#localhost:8280</li>
 * <li>レスポンスのbodyはNullが返ってくることを想定</li>
 * <li>生成したHttpRequestを指定して、HttpClientImpl#executeRequest(request)を実行</li>
 * </ul>
 * 確認:
 * <ul>
 * <li>送信先で指定した次の値がHTTPリクエストに正しく設定されていることを確認</li>
 * </ul>
 */
public void testExecuteRequestWithNoRequestCharacterEncoding() {
    try {
        if (!ServiceManagerFactory.loadManager("jp/ossc/nimbus/service/http/httpclient/service-clientTest4.xml")) {
            System.exit(-1);
        }
        final HttpClientFactory factory = (HttpClientFactory) ServiceManagerFactory.getServiceObject("HttpClientFactory");
        HttpClientImpl client = (HttpClientImpl) factory.createHttpClient();
        DataSet requestDs = new DataSet("Login");
        requestDs.setHeaderSchema("UserInfo", ":name,java.lang.String,,,\n" + ":age,int,,,");
        Header userInfo = requestDs.getHeader("UserInfo");
        userInfo.setProperty("name", "hoge");
        userInfo.setProperty("age", 25);
        HttpRequest request = factory.createRequest("login");
        request.setObject(requestDs);
        HttpResponse res = client.executeRequest(request);
        // レスポンス内容の確認
        assertEquals(200, res.getStatusCode());
        assertNull(res.getObject());
        /*Proxyテスト用プログラム(jp.ossc.nimbus.service.http.proxy.TestHttpProcessService)
				 * の出力ファイルの内容を確認し、HTTPリクエストデータを検証
				 */
        BufferedReader br = new BufferedReader(new FileReader("target/temp/jp/ossc/nimbus/service/http/httpclient/help_output.txt"));
        String s;
        StringBuffer sb = new StringBuffer();
        // Requestヘッダの検証
        while ((s = br.readLine()) != null) {
            if (s.startsWith("Content-Type:")) {
                assertTrue(s.endsWith("application/xml"));
            }
            if (s.startsWith("Accept-Encoding")) {
                assertTrue(s.endsWith("gzip"));
            }
            sb.append(s);
        }
        br.close();
        // DataSet内容の検証
        assertTrue(sb.toString().endsWith("<dataSet name=\"Login\"><schema>" + "<header name=\"UserInfo\">:name,java.lang.String,,,:age,int,,,</header>" + "</schema><header name=\"UserInfo\">" + "<name>hoge</name><age>25</age></header></dataSet>"));
    } catch (HttpRequestCreateException e) {
        e.printStackTrace();
        fail("例外発生");
    } catch (FileNotFoundException e) {
        e.printStackTrace();
        fail("例外発生");
    } catch (IOException e) {
        e.printStackTrace();
        fail("例外発生");
    } finally {
        ServiceManagerFactory.unloadManager("jp/ossc/nimbus/service/http/httpclient/service-clientTest4.xml");
    }
}
Also used : Header(jp.ossc.nimbus.beans.dataset.Header) HttpClientImpl(jp.ossc.nimbus.service.http.httpclient.HttpClientFactoryService.HttpClientImpl)

Example 8 with HttpClientImpl

use of jp.ossc.nimbus.service.http.httpclient.HttpClientFactoryService.HttpClientImpl in project nimbus by nimbus-org.

the class HttpClientFactoryServiceTest method testCreateHttpClientCookie.

/**
 * 指定された論理アクション名に該当するHttpClientを生成し、クッキー情報を設定、取得するテスト。
 * <p>
 * 条件:
 * <ul>
 * <li>次の内容の定義ファイルをロードし、HttpClientFactoryServiceインスタンスを生成する</li>
 * <li>HttpClientFactoryService#createHttpClient()を実行</li>
 * <li>次の値を指定して、HttpClientImpl#ddCookie(javax.servlet.http.Cookie
 * cookie)を実行</li>
 * <li>次の値を指定してクッキーオブジェクトを生成し、HttpClientImpl#ddCookie(javax.servlet.http.Cookie
 * cookie)を実行</li>
 * <li>name:"TestCookie" value:"TestValue"</li>
 * </ul>
 * 確認:
 * <ul>
 * <li>HttpClienttオブジェクトにに指定した値が設定されていることを確認</li>
 * </ul>
 */
public void testCreateHttpClientCookie() {
    try {
        HttpClientFactoryService factory = new HttpClientFactoryService();
        HttpClientImpl client = (HttpClientImpl) factory.createHttpClient();
        javax.servlet.http.Cookie cookie = new javax.servlet.http.Cookie("TestCookie", "TestValue");
        cookie.setDomain("localhost");
        cookie.setMaxAge(1000);
        client.addCookie(cookie);
        javax.servlet.http.Cookie[] result = client.getCookies();
        assertEquals("TestCookie", result[0].getName());
        assertEquals("TestValue", result[0].getValue());
    } catch (HttpRequestCreateException e) {
        e.printStackTrace();
        fail("例外発生");
    } catch (Exception e) {
        e.printStackTrace();
        fail("例外発生");
    }
}
Also used : jp.ossc.nimbus.service.http(jp.ossc.nimbus.service.http) HttpClientImpl(jp.ossc.nimbus.service.http.httpclient.HttpClientFactoryService.HttpClientImpl)

Example 9 with HttpClientImpl

use of jp.ossc.nimbus.service.http.httpclient.HttpClientFactoryService.HttpClientImpl in project nimbus by nimbus-org.

the class HttpClientFactoryServiceTest method testExecuteRequestDeflateLength.

/**
 * 指定された論理アクション名に該当するリクエストを発行するテスト。
 * <p>
 * 条件:
 * <ul>
 * <li>次の内容の定義ファイルをロードし、HttpClientFactoryServiceインスタンスを生成する</li>
 * <li>RequestContentType:application/xml</li>
 * <li>RequestDeflateLength:1000(1000バイト以下のファイルは圧縮しない)</li>
 * <li>RequestHeaders(Accept-Encoding):gzip</li>
 * <li>RequestHeaders(Content-Encoding):gzip(リクエストデータを圧縮)</li>
 * <li>RequestStreamConverterServiceName:#DataSetXMLConverter</li>
 * <li>ResponseStreamConverterServiceName:#ResponseStreamConverter</li>
 * <li>ResponseHeaders:ContentType=application/xml</li>
 * <li>Proxy:#localhost:8280</li>
 * <li>論理アクション名"login"のリクエスト情報を定義</li>
 * <li>HttpClientFactoryService#createHttpClient()を実行し、HttpClientを生成</li>
 * <li>HttpRequestImpl#createRequest(論理アクション名)を実行し、HttpRequestを生成</li>
 * <li>送信するデータセット(1000バイト以下)を次の内容で生成し、HttpRequest#setObject()でセット<BR>
 * スキーマ::name,java.lang.String,,,\n:age,int,,,<BR>
 * 値   :name=hoge,age=25 </li>
 * <li>生成したHttpRequestを指定して、HttpClientImpl#executeRequest(request)を実行</li>
 * </ul>
 * 確認:
 * <ul>
 * <li>送信先で指定した次の値がHTTPリクエストに正しく設定されていることを確認</li>
 * <li>非圧縮扱いになるのでヘッダ内からContent-Encodingが削除されていることを確認</li>
 * </ul>
 */
public void testExecuteRequestDeflateLength() {
    try {
        if (!ServiceManagerFactory.loadManager("jp/ossc/nimbus/service/http/httpclient/service-clientTestDeflen.xml")) {
            System.exit(-1);
        }
        final HttpClientFactory factory = (HttpClientFactory) ServiceManagerFactory.getServiceObject("HttpClientFactory");
        HttpClientImpl client = (HttpClientImpl) factory.createHttpClient();
        DataSet requestDs = new DataSet("Login");
        requestDs.setHeaderSchema("UserInfo", ":name,java.lang.String,,,\n" + ":age,int,,,");
        Header userInfo = requestDs.getHeader("UserInfo");
        userInfo.setProperty("name", "hoge");
        userInfo.setProperty("age", 25);
        HttpRequest request = factory.createRequest("login");
        request.setObject(requestDs);
        HttpResponse res = client.executeRequest(request);
        // レスポンス内容の確認
        assertEquals(200, res.getStatusCode());
        assertEquals("testdata", res.getObject());
        /*Proxyテスト用プログラム(jp.ossc.nimbus.service.http.proxy.TestHttpProcessService)
				 * の出力ファイルの内容を確認し、HTTPリクエストデータを検証
				 */
        BufferedReader br = new BufferedReader(new FileReader("target/temp/jp/ossc/nimbus/service/http/httpclient/help_output.txt"));
        String s;
        StringBuffer sb = new StringBuffer();
        // Requestヘッダの検証
        while ((s = br.readLine()) != null) {
            if (s.startsWith("Content-Type:")) {
                assertTrue(s.endsWith("application/xml"));
            }
            if (s.startsWith("Content-Encoding:")) {
                fail("Content-Encodinが削除されてないため失敗");
            }
            sb.append(s);
        }
        br.close();
        // DataSet内容の検証
        assertTrue(sb.toString().endsWith("<dataSet name=\"Login\"><schema>" + "<header name=\"UserInfo\">:name,java.lang.String,,,:age,int,,,</header>" + "</schema><header name=\"UserInfo\">" + "<name>hoge</name><age>25</age></header></dataSet>"));
    } catch (HttpRequestCreateException e) {
        e.printStackTrace();
        fail("例外発生");
    } catch (FileNotFoundException e) {
        e.printStackTrace();
        fail("例外発生");
    } catch (IOException e) {
        e.printStackTrace();
        fail("例外発生");
    } catch (Exception e) {
        e.printStackTrace();
        fail("例外発生");
    } finally {
        ServiceManagerFactory.unloadManager("jp/ossc/nimbus/service/http/httpclient/service-clientTestDeflen.xml");
    }
}
Also used : Header(jp.ossc.nimbus.beans.dataset.Header) HttpClientImpl(jp.ossc.nimbus.service.http.httpclient.HttpClientFactoryService.HttpClientImpl)

Example 10 with HttpClientImpl

use of jp.ossc.nimbus.service.http.httpclient.HttpClientFactoryService.HttpClientImpl in project nimbus by nimbus-org.

the class HttpRequestImplTest method testRequestSetParamQuely.

/**
 * HttpRequestにパラメータ情報、入力ストリームを設定するテスト。
 * <p>
 * 条件:
 * <ul>
 * <li>次の内容の定義ファイルをロードし、HttpClientFactoryServiceインスタンスを生成する</li>
 * <li>RequestContentType:application/xml</li>
 * <li>RequestCharacterEncoding:Shift_JIS</li>
 * <li>RequestStreamConverterServiceName:#DataSetXMLConverter</li>
 * <li>ResponseStreamConverterServiceName:#ResponseStreamConverter</li>
 * <li>ResponseHeaders:ContentType=application/xml</li>
 * <li>Proxy:#localhost:8280</li>
 * <li>論理アクション名"login"のリクエスト情報を定義</li>
 * <li>HttpClientFactoryService#createHttpClient()を実行し、HttpClientを生成</li>
 * <li>HttpRequestImpl#createRequest(論理アクション名)を実行し、HttpRequestを生成</li>
 * <li>送信するデータセットをXML入力ストリームで生成し、HttpRequest#setInputStream()でセット<BR>
 * <li>生成したHttpRequestに対してsetParameter(),setParameter()を実行し、パラメータ情報設定</li>
 * </ul>
 * 確認:
 * <ul>
 * <li>設定したパラメータ情報、入力ストリームが正しく反映されることを確認</li>
 * </ul>
 */
public void testRequestSetParamQuely() {
    try {
        if (!ServiceManagerFactory.loadManager("jp/ossc/nimbus/service/http/httpclient/service-clientTest2.xml")) {
            System.exit(-1);
        }
        final HttpClientFactory factory = (HttpClientFactory) ServiceManagerFactory.getServiceObject("HttpClientFactory");
        HttpClientImpl client = (HttpClientImpl) factory.createHttpClient();
        // 入力ストリームを設定
        String inxml = "TEST1234567890";
        InputStream is = new ByteArrayInputStream(inxml.getBytes());
        HttpRequestImpl request = (HttpRequestImpl) factory.createRequest("login");
        request.setInputStream(is);
        // パラメータ情報設定
        request.setContentType("text/html");
        request.setParameter("nameA", "valueA");
        request.setParameter("nameA", "valueB");
        String[] vals = new String[] { "valueB1", "valueB2" };
        request.setParameters("nameB", vals);
        // パラメータ情報確認
        assertEquals("valueA", request.getParameter("nameA"));
        String[] getvals = request.getParameters("nameB");
        assertEquals(vals[0], getvals[0]);
        assertEquals(vals[1], getvals[1]);
        client.executeRequest(request);
        // 入力ストリームが正しく送信されたかの確認
        /*Proxyテスト用プログラム(jp.ossc.nimbus.service.http.proxy.TestHttpProcessService)
			 * の出力ファイルの内容を確認し、HTTPリクエストデータを検証
			 */
        BufferedReader br = new BufferedReader(new FileReader("target/temp/jp/ossc/nimbus/service/http/httpclient/help_output.txt"));
        String s;
        StringBuffer sb = new StringBuffer();
        // Requestヘッダの検証
        while ((s = br.readLine()) != null) {
            sb.append(s);
        }
        br.close();
        assertTrue(sb.toString().endsWith("TEST1234567890"));
    } catch (HttpRequestCreateException e) {
        e.printStackTrace();
        fail("例外発生");
    } catch (FileNotFoundException e) {
        e.printStackTrace();
        fail("例外発生");
    } catch (IOException e) {
        e.printStackTrace();
        fail("例外発生");
    } finally {
        ServiceManagerFactory.unloadManager("jp/ossc/nimbus/service/http/httpclient/service-clientTest2.xml");
    }
}
Also used : ByteArrayInputStream(java.io.ByteArrayInputStream) InputStream(java.io.InputStream) HttpRequestCreateException(jp.ossc.nimbus.service.http.HttpRequestCreateException) FileNotFoundException(java.io.FileNotFoundException) IOException(java.io.IOException) ByteArrayInputStream(java.io.ByteArrayInputStream) BufferedReader(java.io.BufferedReader) FileReader(java.io.FileReader) HttpClientImpl(jp.ossc.nimbus.service.http.httpclient.HttpClientFactoryService.HttpClientImpl) HttpClientFactory(jp.ossc.nimbus.service.http.HttpClientFactory)

Aggregations

HttpClientImpl (jp.ossc.nimbus.service.http.httpclient.HttpClientFactoryService.HttpClientImpl)12 Header (jp.ossc.nimbus.beans.dataset.Header)6 HttpClientFactory (jp.ossc.nimbus.service.http.HttpClientFactory)5 PropertySchemaDefineException (jp.ossc.nimbus.beans.dataset.PropertySchemaDefineException)3 HttpRequest (jp.ossc.nimbus.service.http.HttpRequest)3 ConvertException (jp.ossc.nimbus.util.converter.ConvertException)3 BufferedReader (java.io.BufferedReader)2 FileNotFoundException (java.io.FileNotFoundException)2 FileReader (java.io.FileReader)2 IOException (java.io.IOException)2 DataSet (jp.ossc.nimbus.beans.dataset.DataSet)2 HttpRequestCreateException (jp.ossc.nimbus.service.http.HttpRequestCreateException)2 ByteArrayInputStream (java.io.ByteArrayInputStream)1 InputStream (java.io.InputStream)1 jp.ossc.nimbus.service.http (jp.ossc.nimbus.service.http)1 HttpMethodBase (org.apache.commons.httpclient.HttpMethodBase)1