Java Http-запрос с API Apache на api.клиент StackExchange

Java Http-запрос с API Apache на api.клиент StackExchange

04.06.2012 04:09:47 Просмотров 74 Источник

Я пытаюсь выполнить http-запрос на Java с помощью Api Apache (httpcomponents) на api.клиент StackExchange. Но этот запрос возвращает текст, а не HTML.

Вот мой код:

public class HttpRequestBrute {

    public static void main(String[] args) throws Exception {

        URIBuilder builder = new URIBuilder();
        builder.setScheme("http").setHost("api.stackexchange.com").setPath("/2.0/search")
            .setParameter("site", "stackoverflow")
            .setParameter("intitle" ,"workaround")
            .setParameter("tagged","javascript");
        URI uri = builder.build();

         HttpClient httpclient = new DefaultHttpClient();
         try {
             HttpGet httpget1 = new HttpGet(uri);

             System.out.println("executing request " + httpget1.getURI());
             // Create a response handler
             ResponseHandler<String> responseHandler = new BasicResponseHandler();
             String responseBody = httpclient.execute(httpget1, responseHandler);
             System.out.println("----------------------------------------");
             System.out.println(responseBody);
             System.out.println("----------------------------------------");

         } finally {
             httpclient.getConnectionManager().shutdown();
         }
    }
}

Это, кажется, есть ошибка в возвращаемом значении json в строке 1 столбца 19.

Исключение в потоке" main " com.гугл.гсон.JsonSyntaxException: Ява.яз..IllegalStateException: ожидаемый BEGIN_OBJECT, но был строкой в строке 1 столбца 19

У вопроса есть решение - Посмотреть?

https://stackoverflow.com/questions/10881047/java-http-request-with-api-apache-on-api-stackexchange#comment14180732_10881047
Ответы от API StackExchange все в формате JSON, он не возвращает HTML.

Ответы - Java Http-запрос с API Apache на api.клиент StackExchange / Java Http request with API Apache on api.stackexchange

Является ответом!
Santosh

04.06.2012 04:28:18

Ответ, который вы получаете (после удара http://api.stackexchange.com/2.0/search?site=stackoverflow&intitle=workaround&tagged=javascript)

Это не простой текст. Это ответ JSON. Вам понадобится парсер Java JSON, такой как google-gjson, чтобы разобрать это.

https://stackoverflow.com/questions/10881047/java-http-request-with-api-apache-on-api-stackexchange/10881277#comment14181186_10881277
Спасибо, это решает часть моей проблемы. Но то, что я получаю, не разбирается, это просто последовательность специальных символов.
https://stackoverflow.com/questions/10881047/java-http-request-with-api-apache-on-api-stackexchange/10881277#comment14181273_10881277
Можете ли вы опубликовать данные, которые вы получаете ?
https://stackoverflow.com/questions/10881047/java-http-request-with-api-apache-on-api-stackexchange/10881277#comment14185976_10881277
Вы решили эту проблему с особым характером ? Просто любопытно узнать.
https://stackoverflow.com/questions/10881047/java-http-request-with-api-apache-on-api-stackexchange/10881277#comment14186096_10881277
Нет, но проблема у меня теперь другая, поэтому я установил сообщения для разрешения и сделал еще один пост.
https://stackoverflow.com/questions/10881047/java-http-request-with-api-apache-on-api-stackexchange/10881277#comment14260173_10881277
Я нашел проблему, на самом деле ответ http был сжат с помощью алгоритма deflate. Спасибо за вашу помощь.
https://stackoverflow.com/questions/10881047/java-http-request-with-api-apache-on-api-stackexchange/10881277#comment14260781_10881277
о ! И он может быть просмотрен в браузере, потому что браузер автоматически сдувает содержимое на основе заголовков. Спасибо за информацию.
Закрыть X