0

httpClientからhttpサーブレットクラスを呼び出したい、以下のhttpClientコード

public class ConnectionClientHttp {

    public static void main(String[] args) throws Exception {       

    HttpParams params = new SyncBasicHttpParams();
        HttpProtocolParams.setVersion(params, HttpVersion.HTTP_1_1);
        //Set more parameter if necessary

        HttpProcessor httpproc = new ImmutableHttpProcessor(new HttpRequestInterceptor[] {
                // Required protocol interceptors
                new RequestContent(),
                new RequestTargetHost(),
                // Recommended protocol interceptors
                new RequestConnControl(),
                new RequestUserAgent(),
                new RequestExpectContinue()});

        HttpRequestExecutor httpexecutor = new HttpRequestExecutor();

        HttpContext context = new BasicHttpContext(null);

        HttpHost host = new HttpHost("IPAddress", Port);

        DefaultHttpClientConnection conn = new DefaultHttpClientConnection();
        ConnectionReuseStrategy connStrategy = new DefaultConnectionReuseStrategy();

        context.setAttribute(ExecutionContext.HTTP_CONNECTION, conn);
        context.setAttribute(ExecutionContext.HTTP_TARGET_HOST, host);

        try {
            if (!conn.isOpen()) {
                Socket socket = new Socket(host.getHostName(), host.getPort());
                conn.bind(socket, params);
            }

   BasicHttpEntityEnclosingRequest request = new BasicHttpEntityEnclosingRequest("POST","/");

        StringEntity myEntity = new StringEntity("Some string to send at server");
        request.setEntity(myEntity);
        request.setParams(params);
        httpexecutor.preProcess(request, httpproc, context);
        //Response from Server
        HttpResponse response = httpexecutor.execute(request, conn, context);
        System.out.println("<< Response: " + response.getStatusLine());                

        } catch (Exception e){
            e.printStackTrace();
        } finally {
            conn.close();
        }
    }// end of static void main

}// end of class

使うとき

BasicHttpEntityEnclosingRequest request = new BasicHttpEntityEnclosingRequest("POST","<uri>"); 

上記のURIで、ターゲットクラスのパスを指定する必要がありますが、私の場合は、サーバーにデプロイされたサーブレットファイルであり、このファイルからリクエストを取得し、コンソールにコンテンツを表示します。

私の問題は、どのような道をたどるべきかということです。URIに関する私の知識によると、パスはStruts2にありますが、 HttpServlethttp://localhost:8080/erik/loginSubmit!loginDetails.doを拡張するサーブレットファイルを実行したい場合は、どのパスを指定する必要があり、このファイルはどのファイルがデータを送信するターゲットであるかをどのように認識しますか?

以下のようにターゲットファイルを作成しました:

public class ExampServlet extends HttpServlet {

    public void doPost(HttpServletRequest request, HttpServletResponse response) 
        throws ServletException, IOException {
        //Received Request and display it at console    
    }
}

前もって感謝します。タパン

4

0 に答える 0