getInputStream выдает исключение

1

Я пытаюсь вызвать веб-сервис и анализировать возвращенный XML, поэтому мой URL-адрес вызова:

http://192.168.1.12/cr.ws/CarCategories.asmx/CarCategoryComparatorRQ?IdUser=1076&IdCurrency=1&IdLanguage=1&IdCarCategory=0&IdPickupRentCarAgencies=3&IdReturnRentCarAgencies=3&PickupDate=6/4/2011&ReturnDate=9/4/2011&Supplier=Prima%20Rent%20a%20Car&b=prima

в моем браузере я получаю желаемый ответ:

<CarCategoryComparatorRS>
<CarCategory>
<IdCar>22</IdCar>
<IdCarCategory>22</IdCarCategory>
<Supplier>AvantGarde Rent a Car</Supplier>
<PickupRentCarAgencies>Tunis;  Aéroport de Tunis-Carthage</PickupRentCarAgencies>
<IdPickupRentCarAgencies>5</IdPickupRentCarAgencies>
<ReturnRentCarAgencies>Tunis;  Aéroport de Tunis-Carthage</ReturnRentCarAgencies>
<IdReturnRentCarAgencies>5</IdReturnRentCarAgencies>
<IdUser>705</IdUser>
<Title>Catégorie A [ex:Kia Rio;Renault Symbol]</Title>
<IdCurrency>1</IdCurrency>
<ImageUrl>Car-22-20090521-125545.jpg</ImageUrl>
<MemberReductionValue>0</MemberReductionValue>
<Rate>150</Rate>
<DelayRate>0</DelayRate>
<ReductionValue>135</ReductionValue>
<DayRate>45</DayRate>
<Reduction>10%</Reduction>
<AccompteValue>67.500</AccompteValue>
<Accompte>50</Accompte>
<TotalRate>0000135000</TotalRate>
</CarCategory>
</CarCategoryComparatorRS>

Но эта функция вызывает java.io.FileNotFoundException

protected InputStream getInputStream() {
        try {
            return feedUrl.openConnection().getInputStream();
        } catch (IOException e) {
            throw new RuntimeException(e);
        }

Пожалуйста, помогите мне, я потратил пару часов на поиск, но ничего: (

Спасибо.

Теги:
filenotfoundexception
inputstream

4 ответа

3
Лучший ответ

Ошибка вызвана пробелами в этом параметре: "Поставщик = Prima Rent a Car", поэтому я заменил этот параметр на UrlEncoder.encode("Supplier=Prima Rent a Car"), и он сработал.

  • 0
    Этот метод устарел. Следует использовать URLEncoder.encode (String, String), где вторым параметром является кодировка (например, «UTF-8»)
0

Я думаю, ваш URL-адрес интерпретируется как URL-адрес файла.

Как насчет регистрации вашего URL-адреса до того, как вы назовете openConnection как проверку работоспособности:

Log.e("MyApp", feedUrl);

С другой стороны, можете ли вы опубликовать вывод logcat? Я скептически отношусь к тому, как ваш код может когда-либо выбросить FileNotFoundException.

  • 0
    Наконец, я решил это, в этом URL есть параметр, который вызывает эту ошибку, поэтому для этого параметра я использовал UrlEncoder.encode (param), и он работал как шарм
  • 0
    Отлично. Могу я спросить, какие персонажи были причиной проблемы?
Показать ещё 1 комментарий
0

Если вы набираете этот URL-адрес в адресной строке браузера вашего устройства, вы получаете что-нибудь?

  • 0
    Да, я получил XML, о котором упоминал ранее.
0

Похоже, вы пытаетесь запросить адрес на локальном компьютере или в локальной сети. Вы запрашиваете это на устройстве Android? Я предполагаю, что вам нужно запустить свой сервер на компьютере на другом интерфейсе или открыть соединения с требуемым портом.

  • 0
    на самом деле служба работает на реальном сервере, но из соображений безопасности я изменил адрес по локальному URL.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню