0

私のクライアントは HttpServlet インターフェースを実装していません。リモートで実行されている HttpServlet に接続します

 url = new URL("http://tomcat-location:8180/myContext");

これは、サーブレットにメッセージを送信するために使用するものです。しかし、どうすれば応答を返すことができるでしょうか? この場所から読み込もうとすると、指定されたページのコンテンツを読み込んでいます。たぶん私のアプローチ全体が間違っていて、これはクライアントとサーブレットが互いに対話する方法ではありませんか? どうすれば彼らに簡単に話させることができますか?そのURLを使って、そのページに投稿したり読んだりすることでコミュニケーションを取っているようです。ページに書かずに彼らが話すことができる他の方法はありますか? ありがとう

4

1 に答える 1

0

これを試して:

public static String getURLData( String url ) {

    // creates a StringBuilder to store the data
    StringBuilder out = new StringBuilder();

    try {

        // creating the URL
        URL u = new URL( url );

        // openning a connection
        URLConnection uCon = u.openConnection();

        // getting the connection's input stream
        InputStream in = uCon.getInputStream();

        // a buffer to store the data
        byte[] buffer = new byte[2048];


        // try to insert data in the buffer until there is data to be read
        while ( in.read( buffer ) != -1 ) {

            // storing data...
            out.append( new String( buffer ) );

        }

        // closing the input stream
        in.close();            

        // exceptions...  
    } catch ( MalformedURLException exc )  {

        exc.printStackTrace();

    } catch ( IOException exc ) {

        exc.printStackTrace();

    } catch ( SecurityException exc ) {

        exc.printStackTrace();

    } catch ( IllegalArgumentException exc ) {

        exc.printStackTrace();

    } catch ( UnsupportedOperationException exc ) {

        exc.printStackTrace();

    }

    // returning data
    return out.toString();

}

プロキシを使用する必要がある場合は、認証が必要になるため、さらに作業を行う必要があります。ここでそれについて読むことができます: How do I make HttpURLConnection use a proxy?

ブラウザのように動作するクライアントが必要な場合は、Apache HttpComponentesの HttpClient を試すことができます。

ここで、サーバーがクライアントに通知する動作が必要な場合は、独自のサーバーを作成してソケットを操作するなど、別のアプローチを使用する必要があります。通常のブラウザを使用している場合は、WebSocket を使用できますが、そうではないようです。

于 2012-08-17T03:49:09.573 に答える