JAVA Retrive current bitcoin price with JSON

0 votes

I want to get the current/historical bitcoin price by using JSON..

However, the code shows a following ERROR:-

Exception in thread "main" java.lang.NullPointerException at RwithJlab.Basic.main(Basic.java:19)


package RwithJlab; 

import java.io.BufferedReader; 
import java.io.IOException; 
import java.io.InputStreamReader; 
import java.net.MalformedURLException; 
import java.net.URL; 
import java.net.URLConnection; 
import java.nio.charset.Charset; 
import org.json.JSONArray; 
import org.json.JSONException; 
import org.json.JSONObject; 

public class Basic 
{ 

        public static void main(String[] args) throws MalformedURLException, IOException, JSONException 
{ 

JSONObject data = getJSONfromURL("https://blockchain.info/charts/market-price?format=json"); JSONArray data_array = data.getJSONArray("values"); 

for (int i = 0; i < ((CharSequence) data_array).length(); i++) 
{ 

      JSONObject price_point = (JSONObject) data_array.get(i); 

        // Unix time 
        int x = price_point.getInt("1364062505"); 

      // Bitcoin price at that time 
      double y = price_point.getDouble("y"); 

      // Do something with x and y. 
      System.out.println(x); 
    } 
} 

public static JSONObject getJSONfromURL(String URL) throws JSONException 
{ 

    try 
    { 

        URLConnection uc; 
          URL url = new URL(URL); 
          uc = url.openConnection(); 
          uc.setConnectTimeout(10000); 
          uc.addRequestProperty("User-Agent", "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.0)"); uc.connect(); 

BufferedReader rd = new BufferedReader( 
                    new InputStreamReader(uc.getInputStream(), 
                    Charset.forName("UTF-8"))); 

StringBuilder sb = new StringBuilder(); 
int cp; 
while ((cp = rd.read()) != -1) 
{ 
    sb.append((char)cp); 
} 

String jsonText = (sb.toString()); 

return new JSONObject(jsonText.toString()); 
} catch (IOException ex) 
{ 

          return null; 
        } 
    } 
}

Could anyone please help me with this?

Feb 28 in Blockchain by Aditya
• 7,280 points
84 views

1 answer to this question.

0 votes

You should start log Exceptions when you catch them, otherwise you will not be clear once the exception occurs.

In your case you are catching an IOException and returning null. This results in a NullPointerException later, but you cannot see the root cause.

Use Log that IOException (at least call ex.printStackTrace()) and you will see the real reason.

answered Feb 28 by Soham
• 8,730 points

Related Questions In Blockchain

0 votes
1 answer

Using json rpc with curl on java?

Quoting different pieces the way you're doing ...READ MORE

answered Oct 10, 2018 in Blockchain by Omkar
• 69,190 points
1,506 views
0 votes
1 answer

How to get price from bitcoin to USD with api

If I'm not wrong, is this what ...READ MORE

answered Apr 7 in Blockchain by Aditya
• 7,280 points
29 views
0 votes
1 answer

How can I simulate private bitcoin network with random peer discovery?

You can model the whatever network you ...READ MORE

answered May 29, 2018 in Blockchain by Johnathon
• 9,090 points
217 views
0 votes
1 answer

Protocols used in a distributed/dlt system for the nodes to establish communication

yes all are over TCP/IP connections secured by TLS encryption in hashgraph architecture-hashgraph, ...READ MORE

answered Aug 6, 2018 in Blockchain by aryya
• 7,440 points
595 views
0 votes
1 answer

Truffle tests not running after truffle init

This was a bug. They've fixed it. ...READ MORE

answered Sep 11, 2018 in Blockchain by Christine
• 15,790 points
914 views
0 votes
1 answer
0 votes
1 answer

Bitcoin Price that updates in specific Seconds

The better way to do so is ...READ MORE

answered Feb 28 in Blockchain by Soham
• 8,730 points
25 views
webinar REGISTER FOR FREE WEBINAR X
Send OTP
REGISTER NOW
webinar_success Thank you for registering Join Edureka Meetup community for 100+ Free Webinars each month JOIN MEETUP GROUP