Какой самый простой способ отправить HTTP Post запрос на сервер? - PullRequest
0 голосов
/ 16 мая 2019

Я хочу написать простой код в JAVA, который позволит мне отправлять HTTP-запрос POST на сервер

1) Запрос будет содержать следующий JSON

{ «Ключ»: «asd», "dId": 123456, "SomeData": { "id": 12345, "имя": "abcd" }, "Url": "https://google.com/", "tdId": 1, "wdId": 0 }

2) отобразить JSON-ответ с сервера

видел много обучающих видео на YouTube, но никто не объяснял это просто, шаг за шагом

Ответы [ 2 ]

0 голосов
/ 16 мая 2019

Начиная с JDK 9, существует класс HttpClient.В JDK 9 и JDK 10 он находился в состоянии инкубатор .Начиная с JDK 11 он больше не инкубатор .Я не видел упоминаний в вашем посте относительно того, какую версию JDK вы используете.Я что-то пропустил?Вот ссылка на javadoc для JDK 11 ...

java.net.http.HttpClient

На мой взгляд, преимущество использования* JDK HttpClient класс означает отсутствие сторонней зависимости.

0 голосов
/ 16 мая 2019

Если вы не хотите бороться с внутренним JRE HttpURLConnection, вам следует взглянуть на HttpClient от Apache Commons :

org.apache.commons.httpclient

final HttpClient httpClient = new HttpClient();

String url; // your URL
String body; // your JSON
final int contentLength = body.length();

PostMethod postMethod = new PostMethod(url);
postMethod.setRequestHeader("Accept", "application/json");
postMethod.setRequestHeader("Content-Type", "application/json; charset=utf-8");
postMethod.setRequestHeader("Content-Length", String.valueOf(contentLength));
postMethod.setRequestEntity(new StringRequestEntity(body, "application/json", "utf-8"));

final int statusCode = httpClient.executeMethod(postMethod);
if (statusCode != 200) 
    throw new java.io.IOException(statusCode + ": " + HttpStatus.getStatusText(statusCode));

java.io.InputStream responseBodyAsStream = postMethod.getResponseBodyAsStream();
java.io.StringWriter writer=new StringWriter();
org.apache.commons.io.IOUtils.copy(responseBodyAsStream,writer,java.nio.charset.StandardCharsets.UTF_8);

String responseJSON=writer.toString();

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...