Есть ли способ вернуть содержимое страницы в виде строки с помощью OkHttp и метода enqueue? - PullRequest
0 голосов
/ 23 марта 2019

Я хочу спросить, возможно ли использовать метод OkHttp enqueue для получения асинхронного содержимого сайта.

В настоящее время я использую метод execute для получения содержимого различных API-сайтов (в моем случае это всегда либо JSONObject, либо конкретное значение из возвращенного JSON как String. См. Код ниже для текущего метода).

Теперь я попытался использовать метод enqueue для получения асинхронного содержимого, но у меня нет опыта работы с асинхронными методами, и из-за этого я не знаю решения о том, как (и даже больше, ЕСЛИ) я могу использовать этот метод.

Пример в вики на самом деле не отображается, если вы можете вернуть значения через этот метод.

Текущий метод, который я использую:

public String getImgLink(String endpoint) throws IOException{
    Request request = new Request.Builder()
            .url("https://example.com/api/" + endpoint)
            .build();

    // I want to change this to enqueue if possible
    Response response = CLIENT.newCall(request).execute();
    try(ResponseBody body = response.body()){
        if(!response.isSuccessful()) throw new IOException(Unexpected code " + response);
        return new JSONObject(Objects.requireNonNull(body).string()).get("url").toString();
    }
}
...