Выполнение команды AsyncHttpClient / curl через Java не дает должного результата - PullRequest
0 голосов
/ 23 апреля 2019

У меня есть команда 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, но все еще сталкивался с той же проблемой

...