0

現在、ネットワーク内のデバイスと通信するためのプログラムを作成しています。次のコードはこれまでのところ、認証に合格し、デバイスから Web ページを取得できますが、実行時に GET 要求を機能させることができませんでした。以下のコード、私はエラーが発生します:

 Exception in thread "main" java.io.FileNotFoundException: http://192.168.100.222:80
at sun.net.www.protocol.http.HttpURLConnection.getInputStream(Unknown Source)

Webページにデータを入力すると、http://l192.168.xxx.xxx/2?A=3&p=1&X=1234に移動するのと同等になり、tcpflowからは、 httpGET /2?A=4&p=1&X=1234 HTTP/1.1で新しいURL接続を作成しようとしました://192.168.xxx.xxx/2?A=3&p=1&X=1234、それは機能しましたが、複数の入力オプションがあり、それぞれに新しい接続を作成したくないのですが、どうすれば同等のことを行うことができますか?接続を維持しますか?またはコードで何が間違っていましたか?

前もって感謝します。

public class main {
public static void main(String[] argv) throws Exception {
    Authenticator.setDefault(new MyAuthenticator());
    URL url = new URL("http://192.168.xxx.xxx");
    URLConnection connection = url.openConnection();
    connection.setDoOutput(true);
    connection.setDoInput(true);
    OutputStreamWriter out = new OutputStreamWriter(connection.getOutputStream());
    out.write("Get /2?A=4&p=1&X=1234 HTTP1.1");
    out.close();        
    BufferedReader in = new BufferedReader(new InputStreamReader(connection.getInputStream()));
    String decodedString;
    while ((decodedString = in.readLine()) != null) {
            System.out.println(decodedString);
    }
    in.close();
}
4

1 に答える 1

0

それぞれに新しい接続を作成したくない

心配しないでください。HttpURLConnection内部で接続プールを実行します。実際のURLを使用するだけで、Javaを考え抜こうとしないでください。

于 2013-03-06T23:02:52.057 に答える