Есть код, который выполняет POST запрос по указанной ссылке. Код полностью рабочий.
public static void main(String[] args) throws Exception {
URL api = new URL("http://site.com/script.php");
Map<String, String> parameters = new HashMap<>();
parameters.put("parameter1", "value1");
parameters.put("parameter2", "value2");
parameters.put("parameter3", "value3");
String query = parameters.keySet()
.stream()
.map(parameterName -> parameterName + '=' + parameters.get(parameterName))
.collect(Collectors.joining("&"));
HttpURLConnection connection = (HttpURLConnection) api.openConnection();
connection.setRequestMethod("POST");
connection.setRequestProperty("Content-length", String.valueOf(query.length()));
connection.setRequestProperty("Content-Type", "application/x-www-form-urlencoded");
connection.setRequestProperty("User-Agent", "Mozilla/5.0");
connection.setDoOutput(true);
connection.setDoInput(true);
DataOutputStream output = new DataOutputStream(connection.getOutputStream());
output.writeBytes(query);
output.close(); //пробовал flush - ничего не отправляет.
connection.getInputStream();
}
Меня смущает то, что если я не вызову connection.getInputStream();, то запрос не будет выполнен. Я считаю, что это не нормально. Как это делать правильно?
Основные этапы разработки сайта для стоматологической клиники
Продвижение своими сайтами как стратегия роста и независимости