HttpsURLConnection + Cloudflare API FileNotFoundException

时间:2016-10-06 13:34:49

标签: java android https filenotfoundexception

我正在尝试为Android创建一个应用程序,我正试图从我的CloudFlare Dashboard中读取我的统计数据。 奇怪的是,如果我的代码到达行ins = con != null ? con.getInputStream() : null;,它将说“FileNotFoundException”。 标题按其应有的方式设置。以下是CF API文档的引用:

  

仪表板视图提供整个CloudFlare网络中给定区域和时间段的总计和时间序列数据。   GET / zones /:zone_identifier / analytics / dashboard    - https://api.cloudflare.com/#zone-analytics-dashboard

有些参数是可选的,我已经仔细检查了我的数据,它在Postman中工作正常。

我尝试使用http,但CF不允许使用。

我的代码:

class JsonRequest extends AsyncTask<String, String, String> {
private String readStream(InputStream is) {
    try {
        ByteArrayOutputStream bo = new ByteArrayOutputStream();
        int i = is.read();
        while (i != -1) {
            bo.write(i);
            i = is.read();
        }
        return bo.toString();
    } catch (IOException e) {
        return "";
    }
}

protected String doInBackground(String... params) {
    URL myurl = null;
    try {
        myurl = new URL(params[0]);
    } catch (MalformedURLException e) {
        e.printStackTrace();
    }
    HttpsURLConnection con = null;
    try {
        con = (HttpsURLConnection)myurl.openConnection();
        con.setRequestProperty("X-Auth-Email", "email");
        con.setRequestProperty("X-Auth-Key", "key");
        con.setRequestProperty("Content-Type", "application/x-www-form-urlencoded");
        con.setRequestProperty("User-Agent","Mozilla/5.0 ( compatible ) ");
        con.setRequestProperty("Accept","*/*");
        con.setDoOutput(false);
    } catch (IOException e) {
        e.printStackTrace();
    }
    InputStream ins = null;
    try {
        ins = con != null ? con.getInputStream() : null; // FileNotFoundException
    } catch (IOException e) {
        e.printStackTrace();
    }
    InputStreamReader isr = new InputStreamReader(ins);
    BufferedReader in = new BufferedReader(isr);
    try {
        in.close();
    } catch (IOException e) {
        e.printStackTrace();
    }
    return readStream(ins);
    }
}

0 个答案:

没有答案