0

JSON OpenData からデータを取得し、電話で視覚化するトピックを開始しました。

私はこのチュートリアルに従いましたが、すべてうまくいきました:)

https://www.learn2crack.com/2013/10/android-asynctask-json-parsing-example.html データを取得する URL は次のとおりです。

http:// + api.learn2crack.com/android/json/ (申し訳ありませんが、評判が良くありません:))

次に、Opendata me を試してみたかったのですが、Android アプリケーションが停止しました。URL は次のとおりです。

http://ckan.opendata.nets.upf.edu/storage/f/2013-11-30T16%3A49%3A59.118Z/london.json

同じであることがわかります。コード内の URL の名前を変更しただけです。問題が OpenData によるものかどうか知っていますか? 許可が必要ですか?2番目の部分を実行すると、アプリが停止したため

4

1 に答える 1

0

ほら、これは効きます。私は Strict Policy を使用していますが、通常は Async を使用する必要があります。Strict Policy の代わりに Async を使用する理由については、これをググってください。ここは関係ない

HttpPost を使用して json を URL から取得すると、これらのエラーが発生します:-

405メソッドは許可されていません

メソッド POST は、このリソースには許可されていません。

ファイルを投稿することはできません

だから私はHttpGetを使用しています:-

        String url = "http://ckan.opendata.nets.upf.edu/storage/f/2013-11-30T16:49:59.118Z/london.json";

    try{
        StrictMode.ThreadPolicy policy = new StrictMode.ThreadPolicy.Builder().permitAll().build();

        StrictMode.setThreadPolicy(policy);
        // defaultHttpClient
        DefaultHttpClient httpClient = new DefaultHttpClient();
        //HttpPost httpPost = new HttpPost(url);
        HttpGet httpGet = new HttpGet(url);
        HttpResponse httpResponse = httpClient.execute(httpGet);
        HttpEntity httpEntity = httpResponse.getEntity();
        is = httpEntity.getContent();
 BufferedReader reader = new BufferedReader(new InputStreamReader(
                is, "iso-8859-1"), 8);
        StringBuilder sb = new StringBuilder();
        String line = null;
        while ((line = reader.readLine()) != null) {
            sb.append(line + "\n");
        }
        is.close();
        JSONObject jObj = new JSONObject(sb.toString());
        JSONArray json2 = json.getJSONArray("user");

        for (int i = 0; i < json2.length(); i++) {
           JSONObject c = json2.getJSONObject(i);
    }
}
catch (Exception e) {
            e.printStackTrace();
        }
于 2013-11-30T17:48:12.000 に答える