Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Java: Работа с сетью > Конвертер валют через Yahoo Finance


Автор: yeti 24.12.2016, 14:19
Помогите исправить не удается подключиться к Yahoo Finance



Код

private void jButton1ActionPerformed(java.awt.event.ActionEvent evt) {                                         
     
       String curAmountText = curAmount.getText();
      
       for(int i=0;i < curAmountText.length();i++)
       {
           if(!Character.isDigit(curAmountText.charAt(i)))
           {
               JOptionPane.showMessageDialog(this, "Please enter a valid amount!");
               curAmount.requestFocus();
               return;
           }
       }
 
       resultDisplay.setText("");
 
       String curFromText   = curFrom.getSelectedValue().toString();
       String curToText     = curTo.getSelectedValue().toString();
 
       String[] temp = null;
       temp = curFromText.split(" - ");
       String curFromTitle = temp[0];
       String curFromCode = temp[1];
 
       temp = curToText.split(" - ");
       String curToTitle = temp[0];
       String curToCode = temp[1];
 
       String URL = "http://finance.yahoo.com/q/bc?s=" + curFromCode + "" + curToCode + "=X&t=5d&l=on&z=m&q=l&c=";
 
        try {
          
            String results = "";
            URL thePage = new URL(URL);
            BufferedReader in = new BufferedReader(new InputStreamReader(thePage.openStream()));
            String inputLine;
 
            while ((inputLine = in.readLine()) != null) {
             
              results = results + inputLine;
            }
            in.close();
           
            Pattern finalPattern = Pattern.compile("x">([0-9.]+)</span>");
            Matcher matchFind = finalPattern.matcher(results);
            matchFind.find();
 
            double curRate = Double.valueOf(matchFind.group(1)).doubleValue();
            double totalConvert = curRate * Double.valueOf(curAmount.getText()).doubleValue();
 
           
            finalPattern = Pattern.compile("<span id="yfs_t10_[a-zA-Z]+=x">(.*)</span>:");
            matchFind = finalPattern.matcher(results);
            matchFind.find();
 
            resultDisplay.setText(String.format("%,.2f", totalConvert));
            resultDisplayTime.setText("Per Trade Time: "+matchFind.group(1));
       } catch (Exception e) {
           // Do error handling
           JOptionPane.showMessageDialog(this, "Не удается подключиться к Yahoo Finance!");
       }
    }

Автор: a0730 26.12.2016, 08:13
Попробуй изменить URL на
Код

String URL = "http://finance.yahoo.com/d/quotes.csv?e=.csv&f=sl1d1t1&s=" + curFromCode + curToCode + "=X";


Этот ответ добавлен с нового Винграда - http://ru.vingrad.com/Konverter-valyut-cherez-Yahoo-Finance-id585e5a1e84a74b369610abb3#findElement_E7045_5860a6e007af933c61478344_0

Автор: yeti 26.12.2016, 13:00
Цитата(a0730 @ 26.12.2016,  08:13)
Попробуй изменить URL на 
Код

String URL = "http://finance.yahoo.com/d/quotes.csv?e=.csv&f=sl1d1t1&s=" + curFromCode + curToCode + "=X";


Этот ответ добавлен с нового Винграда - http://ru.vingrad.com/Konverter-valyut-cherez-Yahoo-Finance-id585e5a1e84a74b369610abb3#findElement_E7045_5860a6e007af933c61478344_0

не работает

Автор: LSD 26.12.2016, 19:07
Телепаты у нас давно перевелись, а без них понять что значит "не удается подключиться", не получится.

Автор: valantis 17.5.2017, 15:26
Надо силой мысли попробовать подключится. У меня всегда прокатывает. 

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)