2014-12-13 1 views
0

나는이 URL의 JSON받을려고 금지 얻을 :자바는 JSON URL이 코드

GRAVE: null 
java.io.IOException: Server returned HTTP response code: 403 for URL: https://usecryptos.com/jsonapi/ticker/BTC-USD 
    at sun.net.www.protocol.http.HttpURLConnection.getInputStream0(HttpURLConnection.java:1838) 
    at sun.net.www.protocol.http.HttpURLConnection.getInputStream(HttpURLConnection.java:1439) 
    at sun.net.www.protocol.https.HttpsURLConnectionImpl.getInputStream(HttpsURLConnectionImpl.java:254) 
    at java.net.URL.openStream(URL.java:1038) 
    at main.JsonReader.readJsonFromUrl(JsonReader.java:28) 
    at exchanges.brazil.UseCryptos.getTicker(UseCryptos.java:62) 
    at exchanges.brazil.UseCryptos.get24hrVol(UseCryptos.java:50) 
    at exchanges.brazil.UseCryptos.<init>(UseCryptos.java:42) 
    at main.Main.init(Main.java:31) 
    at main.Main.main(Main.java:52) 

Exception in thread "main" java.lang.NullPointerException 
    at exchanges.brazil.UseCryptos.getTicker(UseCryptos.java:73) 
    at exchanges.brazil.UseCryptos.get24hrVol(UseCryptos.java:50) 
    at exchanges.brazil.UseCryptos.<init>(UseCryptos.java:42) 
    at main.Main.init(Main.java:31) 
    at main.Main.main(Main.java:52) 
Java Result: 1 

나는이 전화 해요 : https://usecryptos.com/jsonapi/ticker/BTC-USD 그것은 브라우저에서 액세스의를, 그러나,이 프로그램은 나에게 다음과 같은 오류가 주어집니다

@Override 
    public String getTicker(String info, String coin) throws JSONException{ 
     JSONObject json = null; 
     try { 
      String[] parts = coin.split("_"); 
      coin = parts[0]+"-"+parts[1]; 
      System.out.println(base_url + pairs_path_ticker[0][1] + coin); 
      json = JsonReader.readJsonFromUrl(base_url + pairs_path_ticker[0][1] + coin); 
      //json = json.getJSONObject("priVolume"); 

     } catch (IOException ex) { 
      Logger.getLogger(UseCryptos.class.getName()).log(Level.SEVERE, null, ex); 
     } catch (JSONException ex) { 
      Logger.getLogger(UseCryptos.class.getName()).log(Level.SEVERE, null, ex); 
     } 
     switch (info) { 

      case "vol": 
       return Double.toString(json.getDouble("priVolume")); 
      default: 
       return null; 
     } 
    } 

중고 기능 :

,745,151
public static JSONObject readJsonFromUrl(String url) throws IOException, JSONException { 
    InputStream is = new URL(url).openStream(); 
    try { 
     BufferedReader rd = new BufferedReader(new InputStreamReader(is, Charset.forName("UTF-8"))); 
     String jsonText = readAll(rd); 
     JSONObject json = new JSONObject(jsonText); 
     return json; 
    } finally { 
     is.close(); 
    } 
    } 
"부피"를 파라미터로서 "BTC_USD"와 기능

아무도 도와 줄 수 있습니까?

답변

0

나는 curl을 사용하여 참조하는 https url을 다운로드하려고했으나 정상적으로 작동합니다. 나도 같은 URL을 다운로드하려고했지만 https를 http로 변경했습니다. 나는 여기에 "개체가 여기로 옮겨졌다"고 말하는 html 페이지가 있습니다. "여기"는 https URL입니다. 아마 일어날 일은 https url이 아닌 http url에 액세스하려고 시도한 것입니다. https url에는 JSON 파일이 있습니다.

당신은 내가에만 htttp와 코드를 시도, 나는 또한 @Marichyasana 응답을 위해 3 선

curl https://usecryptos.com/jsonapi/ticker/BTC-USD > x.json 

    FILE: x.json 

    {"id":113,"marketName":"BTC-USD","lastPrice":377.23420530,"last24hHigh":377. 
    23420530,"last24hLow":377.23420530,"priVolume":0.00060138,"secVolume":0. 
    22686111,"ask":347.83114848,"bid":337.55042488,"change":0.13968037854984894} 

    curl http://usecryptos.com/jsonapi/ticker/BTC-USD > y.html 

    File: y.html 

    <html><head><title>Object moved</title></head><body> <h2>Object 
    moved to <a 
    href="https://usecryptos.com/jsonapi/ticker/BTC-USD">here</a>.</h2> 
    </body></html> 
+0

덕분에 JSON 파일을 분할했다 인증서
을 무시 컬 한 후 "-k"를 사용해야 할 수 있습니다, https 대신 사용했던 코드를 게시 할 수 있습니까? 나는 성공하지 못했다 ... – Ernanirst