сделать запрос get к .json URI в java и получить его содержимое - PullRequest
1 голос
/ 20 марта 2012

У меня есть этот URI http://data.seattle.gov/api/views/vncn-umqp/rows.json типа .json , и я хочу сделать GET-запрос для получения data части объекта (см. Последнюю часть страницы с помощью "data ") для целей построения.

Проблема в том, что я не уверен, использовать ли HttpURLConnection, URL, URLConnection или Connection или любой другой подобный ресурс для получения успешного ответа 200.Кроме того, домен этого URI предоставляет REST API прямо здесь для запроса, но из-за несоответствий в документации (например, они используют sun.Base64Encoder для кодирования учетных данных пользователя, который не предназначен для использования или недоступен), я нахожу это действительнотрудно использовать для подключения, не говоря уже о получении данных.

Они также используют метод аутентификации с ключом API, но я не уверен, какой из них выполняет работу для простоты задачи (т. е. какой необходим только длячтение данных с этого конкретного URI)

Может кто-нибудь дать мне решение о том, как сделать такой запрос?

Ответы [ 2 ]

3 голосов
/ 20 марта 2012

Вы можете использовать Apache HttpClient для отправки запросов к веб-ресурсам, которые включены в Android API. Выдать запрос GET достаточно просто:

HttpGet get = new HttpGet("http://data.seattle.gov/api/views/vncn-umqp/rows.json");

HttpClient client = new DefaultHttpClient();
HttpResponse response = client.execute(get);
System.out.println(response.getStatusLine());

Затем вы можете использовать библиотеку JSON для анализа ответа. Клиент также поддерживает другие HTTP-глаголы (POST, PUT, DELETE ...).

Что касается второй части вашего вопроса, то это несколько сбивало с толку, поскольку казалось, что это подразумевает, что этот REST API предоставляется тем же поставщиком веб-службы, с которым вы связались, но это не так. Кроме того, не сразу было очевидно, что это на самом деле REST client API. Вы можете обновить свой вопрос, чтобы прояснить это. Но вернемся к теме: вам не нужно использовать сложный клиентский API REST для этого, просто получите доступ к содержимому с помощью HttpClient и обработайте его с помощью библиотеки JSON.

Удачи!

1 голос
/ 20 марта 2012

Я рекомендую вам использовать библиотеку Google Gson для работы с файлами JSON.

http://code.google.com/p/google-gson/

Это очень легко интегрировать в ваш проект и значительно облегчит вашу работу по анализу содержимого файла json.

...