Используя запрос Get с URLConnection

В настоящее время я пишу программу для связи с устройством в моей сети, и следующий код - это то, что у меня есть, оно прошло аутентификацию и может получить веб-страницу с устройства, однако я не смог заставить работать запрос GET, когда я запускаю код ниже, я получаю ошибку:

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

когда я ввожу данные на веб-страницу, это эквивалентно переходу http://l192.168.xxx.xxx/2?A=3&p=1&X=1234 и из tcpflow GET /2?A=4&p=1&X=1234 HTTP/1.1Я попытался создать новое соединение URL с http://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();
}

1 ответ

Я не хочу создавать новое соединение для каждого из них

Не беспокойся об этом. HttpURLConnection делает подключение пула под капотом. Просто используйте ваши реальные URL, не пытайтесь перехитрить Java.

Другие вопросы по тегам