XML-запрос Android не анализирует знак ‘ ‘ плюс

#android #xml

#Android #xml

Вопрос:

Я запрашиваю котировки акций Yahoo Finance в следующем формате:

[веб-сайт]?s = [биржевой тикер] [биржевой тикер] ….. и т.д.

Он отлично работает по отдельности, но когда я добавляю и выполняю два действия одновременно, возвращаемый CSV-файл говорит «Отсутствует переменная формата». Я пробовал +, но безуспешно.

Окружающий код выглядит следующим образом

 URL url = new URL("http://finance.yahoo.com/d/quotes.csv?s=USDGBP=X USDEUR=Xamp;amp;f=l1");
InputStreamReader isr = new InputStreamReader(url.openConnection().getInputStream());
String[] yahooRateInfo = new BufferedReader(isr).readLine().split(",");
Double rateGBP = Double.parseDouble(yahooRateInfo[0]);
Double rateEUR = Double.parseDouble(yahooRateInfo[1]);
  

Заранее спасибо

Dre

Комментарии:

1. Покажите нам код, в котором вы это вызываете.

Ответ №1:

Попробуйте это:

 URL url = new URL("http://finance.yahoo.com/d/quotes.csv?s=USDGBP=X USDEUR=Xamp;f=l1");
InputStreamReader isr = new InputStreamReader(url.openConnection().getInputStream());
BufferedReader yahooRateInfo = new BufferedReader(isr);
try {
Double rateGBP = Double.parseDouble(yahooRateInfo.readLine());
Double rateEUR = Double.parseDouble(yahooRateInfo.readLine());
} catch(NumberFormatException e) {
   Log.d(TAG, "error parsing rates",e);
}
  

Сбой происходит не из-за знака » «, а из-за неправильного второго get-параметра.

Комментарии:

1. Хотя этот URL возвращает значение, он возвращает только первое значение. т. е. 0.1234, где он должен возвращать 0.1234,0.5678.

2. Вы видели вторую строку? Разве это не второе значение, которое вы ищете?

3. Вторая строка отображается, когда я делаю это через рабочий стол, но не отображается на Android