Сбой HttpClient при создании DefaultHttpClient - PullRequest
1 голос
/ 06 июня 2011

Я пытался (не удалось) использовать библиотеку HttpClient для отправки http-запросов в веб-службу, и я просто создал простой класс для проверки запроса на получение ...

DefaultHttpClient client = new DefaultHttpClient();
        HttpGet get = new HttpGet("http://localhost/mywebservice/1");
        try {
            HttpResponse response = client.execute(get);
            BufferedReader br = new BufferedReader(new InputStreamReader(response.getEntity().getContent()));
            String line = "";
            while((line = br.readLine()) != null) {
                System.out.println(line);
            }
        } catch(IOException e) {
e.printStackTrace();
    }

Моя проблема в том, что он не проходит первую строку, он выдает следующее исключение времени выполнения ...

Exception in thread "main" java.lang.RuntimeException: Stub!
    at org.apache.http.impl.client.AbstractHttpClient.<init>(AbstractHttpClient.java:5)
    at org.apache.http.impl.client.DefaultHttpClient.<init>(DefaultHttpClient.java:7)
    at Main.main(Main.java:20)

И я не могу найти какие-либо решения онлайн где-либо, потому что все, кажется, либо говорят, что это проблема использования его с Android SDK и не работает эмулятор, но я не использую пакет в комплекте с Android SDK. Или это связано с выполнением модульных тестов, но это всего лишь простой метод main в классе.

Любая помощь была бы велика, потому что я боролся с этим весь день

Спасибо

Ответы [ 3 ]

1 голос
/ 26 февраля 2012

Была такая же проблема, и ссылка от ленблой помогла (спасибо!).Вот что нужно сделать (в затмении):

  1. Щелкните правой кнопкой мыши свой проект.
  2. Путь сборки -> Настроить путь сборки ...
  3. Перейдите кВкладка «Заказ и экспорт».
  4. Выберите «httpclient-4.1.3.jar» (или любую другую версию, которую вы можете использовать)
  5. Нажмите кнопку «Вверх» справа.
1 голос
/ 13 декабря 2015

Посмотрите на этот вопрос, который описывает, что такое "заглушка!"означает.

Вызов Apache DefaultHttpClient приводит к «java.lang.RuntimeException: Stub!»

В итоге:

Это способ Android сказатьВы, что вы не можете запустить этот модульный тест на этой платформе.Модульные тесты, которые включают взаимодействие с платформой Android (например, с сетью в данном случае), должны выполняться на реальном устройстве Android или на работающем эмуляторе Android.

По-видимому, вы запускаете модульные тесты для классов-заглушекв Android SDK.

0 голосов
/ 06 июня 2011

Weird. это не поможет?

Другое предложение: чтобы убедиться, что вы не используете android lib, запустите код с параметром VM -verbose, (java -verbose Myclass; или добавьте переключатель в «Аргументы VM» на вкладке конфигурации запуска Eclipse ) и посмотрите, из какого jar загружается AbstractHttpClient.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...