У меня есть команда curl, как показано ниже (пример один)
curl -v https://my-ip/sample/v1/map/1?name=sat&id=123&code=AE123, ER345
Когда я выполняю вышеупомянутую команду curl, она дает полный ответ (содержит более 2 страниц), но когда я выполняю вышеуказанный curl вЯва использует AsyncHttpClient
это дает только 2 строки ответа.Пример кода
private static void executeHttps(String map, String codes) throws ExecutionException, InterruptedException, IOException {
AsyncHttpClient asyncHttpClient = new AsyncHttpClient();
String url = "https://my-ip/sample/v1/map/"+channelMap;
AsyncHttpClient.BoundRequestBuilder r = asyncHttpClient.prepareGet(url);
r.addQueryParam("name", "sat");
r.addQueryParam("id", "123");
r.addQueryParam("codes", codes);
logger.info("URL: "+r);
Future<Response> f = r.execute();
Response res = f.get();
logger.info(res.getStatusCode() + ": " + res.getStatusText());
logger.info(res.getResponseBody());
}
Я также пытался реализовать код, который будет напрямую выполняться как команда curl в Java, т.е.
String curlString = "curl -v https://my-ip/sample/v1/map/1?name=sat&id=123&code=AE123, ER345";
Process process = Runtime.getRuntime().exec(curlString);
InputStream is = process.getInputStream();
String s = jsonString = IOUtils.toString(is, StandardCharsets.UTF_8);
JSONObject json = new JSONObject(s);
Когда я печатаю значение json
, оно дает то же самоеответ как AsyncHttpClient
.Не удалось получить реальный ответ в обоих случаях.Здесь другой момент - когда я изменяю значения codes
в команде curl
, я получаю разные ответы (для некоторых кодов я получаю одинаковые ответы как в прямом, так и в программном режиме, но для кодов, получающих разные ответы при прямом и программном скручивании),
Я также пытался использовать HttpUrlConnection
и HttpsUrlConnection
, но все еще сталкивался с той же проблемой