Как получить JSON из CURL запроса?

253
05 июня 2017, 22:31

У меня имеется следующий пример CURL запроса.

curl -X GET --header 'Accept: application/json' --header "authorization: Bearer <API token>" 'https://api.clashofclans.com/v1/clans?name=%239C8LGYQQ'

Обычно я делал так:

JSONObject jsonObject = new JSONObject(new RestTemplate().getForObject("https://api.clashofclans.com/v1/clans?name=%239C8LGYQQ", String.class));

Сейчас я должен передавать ещё token и всё остальное. Пробовал передать параметром через url, но всё без успешно.

Подскажите как я могу это сделать. Благодарю.

Answer 1

Посмотрите на библиотеку Unirest

С ней ваш запрос будет выглядет так

JSONObject jsonObject = Unirest.get("https://api.clashofclans.com/v1/clans")
        .header("Authorization", "Bearer" + apiToken)
        .queryString("name", "#9C8LGYQQ")
        .asJson()
        .getBody()
        .getObject();

В принципе можно сразу вытащить из ответа нужные данные, но показать как не могу, так как не знаю содержимое объекта.

Answer 2
String url = "https://api.clashofclans.com/v1/clans?name=%239C8LGYQQ";
String token = "<API token>";
RestTemplate restTemplate = new RestTemplate();
HttpHeaders headers = new HttpHeaders();
headers.setAccept(Arrays.asList(MediaType.APPLICATION_JSON));
headers.set("Authorization", "Bearer " + token);
HttpEntity<String> httpEntity = new HttpEntity<String>("", headers);
ResponseEntity<String> response = restTemplate.exchange(url, HttpMethod.GET, httpEntity, String.class);
JSONObject jsonObject = new JSONObject(response.getBody());
READ ALSO
Парсинг Json, почему не работает?

Парсинг Json, почему не работает?

Что я сделал не так?

348
Защита apk от декомпиляции

Защита apk от декомпиляции

Подскажите самые простые из существующих методов защиты для скрытия (шифровки, нечитаемости и пр) хотябы одного файла strings

321