Как правило, во время разработки проекта неизбежно приходится сталкиваться с вызовами внешних интерфейсов. В этой статье описывается метод вызова класса HttpURLConnection в фоновом режиме Java для имитации запросов браузера. Может использоваться для вызовов интерфейса. Поделитесь этим со всеми для справки. Конкретный метод реализации заключается в следующем:
Скопируйте код следующим образом: package com.cplatform.movie.back.test;
импортировать java.io.BufferedReader;
импортировать java.io.DataOutputStream;
импортировать java.io.InputStreamReader;
импортировать java.net.HttpURLConnection;
импортировать java.net.URL;
импортировать java.net.URLEncoder;
общественный класс HttpURLConnectionTest {
общедоступная статическая окончательная строка GET_URL = "http://112.4.27.9/mall-back/if_user/store_list?storeId=32";
общедоступная статическая окончательная строка POST_URL = "http://112.4.27.9/mall-back/if_user/store_list";
/**
* Интерфейс вызывает GET.
*/
общественная статическая недействительность httpURLConectionGET () {
пытаться {
URL url = новый URL(GET_URL); // Преобразование строки в адрес запроса URL.
Соединение HttpURLConnection = (HttpURLConnection) url.openConnection();//Открываем соединение
Connection.connect();//Подключаем сеанс
// Получаем входной поток
BufferedReader br = новый BufferedReader (новый InputStreamReader (connection.getInputStream ()));
Струнная линия;
StringBuilder sb = новый StringBuilder();
while ((line = br.readLine()) != null) {// Цикл чтения потока
sb.append(строка);
}
br.close();//Закрываем поток
соединение.отключить(); // Отключиться
System.out.println(sb.toString());
} catch (Исключение е) {
е.printStackTrace();
System.out.println("Ошибка!");
}
}
/**
* Интерфейс вызывает POST
*/
общественная статическая недействительность httpURLConnectionPOST () {
пытаться {
URL-адрес = новый URL-адрес (POST_URL);
//Принудительно установить соединение urlConnection, возвращаемое методом open, к соединению HttpURLConnection (определить соединение с удаленным объектом, на которое ссылается URL-адрес)
HttpURLConnection Connection = (HttpURLConnection) url.openConnection();// На данный момент соединение — это просто объект соединения, ожидающий подключения
//Устанавливаем выходной поток соединения в значение true, значение по умолчанию — false (запросы на публикацию неявно передают параметры в виде потока)
Connection.setDoOutput(истина);
//Устанавливаем входной поток соединения в true
Connection.setDoInput(истина);
//Установим метод запроса для публикации
Connection.setRequestMethod("POST");
// для кеша почтового запроса установлено значение false
Connection.setUseCaches(ложь);
//Устанавливаем, будет ли экземпляр HttpURLConnection автоматически выполнять перенаправление
Connection.setInstanceFollowRedirects(истина);
//Устанавливаем каждый атрибут в заголовке запроса (ниже указан тип контента, установленный в параметре from, закодированном urlEncoded)
// приложение/x-javascript text/xml->xml data application/x-javascript->json object application/x-www-form-urlencoded->form data
Connection.setRequestProperty("Content-Type", "application/x-www-form-urlencoded");
// Устанавливаем соединение (запрос не запускается до тех пор, пока не будет вызван метод Connection.getInputStream(). Указанные выше настройки параметров необходимо выполнить до этого метода)
соединение.подключиться();
//Создаем потоки ввода и вывода, используемые для вывода параметров, передаваемых в соединении (выходной контент — это контент после?)
Вывод данных DataOutputStream = новый DataOutputStream(connection.getOutputStream());
String parm = "storeId=" + URLEncoder.encode("32", "utf-8"); //Метод URLEncoder.encode() кодирует строки
// Вывод параметров на соединение
dataout.writeBytes(парм);
// Обновляем и закрываем поток после завершения вывода
данныеout.flush();
dataout.close(); // Важный шаг, который легко игнорировать (закройте поток, помните!)
System.out.println(connection.getResponseCode());
//Соединение инициирует запрос и обрабатывает ответ сервера (получает входной поток от соединения и оборачивает его как bufferedReader)
BufferedReader bf = новый BufferedReader (новый InputStreamReader (connection.getInputStream ()));
Струнная линия;
StringBuilder sb = new StringBuilder(); // Используется для хранения данных ответа.
// Читаем поток в цикле, если он не дошел до конца
while ((line = bf.readLine()) != null) {
sb.append(bf.readLine());
}
bf.close(); // Важный шаг, который легко игнорировать (закройте поток, помните!)
Connection.disconnect(); // Уничтожаем соединение
System.out.println(sb.toString());
} catch (Исключение е) {
е.printStackTrace();
}
}
public static void main(String[] args) {
// httpURLConectionGET();
httpURLConnectionPOST();
}
}
Я надеюсь, что эта статья будет полезна каждому, кто занимается программированием на Java.