В принципе, я пытаюсь подключиться к веб-интерфейсу через приложение для Android.Android HttpUrlConnection не работает
Мне удалось успешно отправить команды в форму, используя HttpClient. Тем не менее, я хочу выполнить это, используя HttpUrlConnection, как рекомендовано здесь http://android-developers.blogspot.com/2011/09/androids-http-clients.html с целью обеспечения более быстрого и энергосберегающего соединения.
URL url = new URL("http://" + mIpAddress + ":" + mPort + "/command.html");
HttpURLConnection connection = (HttpURLConnection) url.openConnection();
connection.setReadTimeout(10000);
connection.setConnectTimeout(15000);
connection.setRequestMethod("POST");
connection.setDoInput(true);
connection.setDoOutput(true);
OutputStream os = connection.getOutputStream();
BufferedWriter writer = new BufferedWriter(new OutputStreamWriter(os, "UTF-8"));
writer.write(URLEncoder.encode("parameter=" + value, "UTF-8");
writer.flush();
writer.close();
os.close();
connection.connect();
Edit: Никакие исключения не бросают, так как код выполняется нормально, запрос просто, вероятно, не в ожидаемом формате сервер?
У меня нет каких-либо исключений и ответа, насколько я могу судить. Сервер/сайт НЕ ИМЕЕТ отправить обратно право ответа? Я пытаюсь избежать использования сторонних библиотек, так как мне нужен простой метод для подключения. Но если все остальное терпит неудачу, я рассмотрю использование okhttp, спасибо, что рассказали мне об этом! В любом случае, есть ли что-нибудь, что я могу сделать, чтобы предоставить лучшую информацию? Не знаю, что отлаживать, поскольку подключение к серверу кажется немного пробным и ошибочным процессом. – anonymousCoder
Вы используете свой http-код в собственной теме или async-задаче? Поскольку андроид 4.0 android не позволит вам блокировать основной поток ui для длительных операций, таких как HTTP-вызовы. Обычно в этом случае будет выбрано исключение, но, возможно, это не делается на вашем тестовом устройстве по какой-то причине ... – sockeqwe
Я правильно запускаю его в AsyncTask. В принципе, у меня есть два метода в этом классе. Один работает с использованием HttpClient (Apache, я думаю), а другой использует HttpUrlConnection. HttpClient работает нормально, поэтому нет проблем с потоком, однако HttpUrlConnection дает мне проблемы. Это мой первый раз, когда я использую сетевое взаимодействие в Java, поэтому, вероятно, я потерял что-то очень простое для вышеупомянутой реализации ... Я также попытался сравнить кодировку символов между HttpClient и HttpUrlConnection, но я не видел различий. – anonymousCoder