0
私はJSONで非同期タスクを解析しましたが、URL http://example.com/json/note.jsonを使用しています(無料のJSONホスティングサービスを使用して保存した後は編集できません)。しかし、私のファイルは1つのリンクに永久に置かれません。そこで、URLリダイレクトサービスを使用して新しいJSON URLをリダイレクトしました。 URLリダイレクトサービスを使用すると、URLはhttp://example.com/json/new_note.jsonにリダイレクトされません。ブラウザで私のリダイレクトサービスのURLを使用してJSON urlリダイレクトに失敗しました
new JSONAsyncTask().execute("http://example.com/json/note.json"); //works
new JSONAsyncTask().execute("http://example.com/redirection_service_url"); //doesn't works
がJSONAsyncTask
class JSONAsyncTask extends AsyncTask<String, Void, Boolean> {
@Override
protected void onPreExecute() {
super.onPreExecute();
}
@Override
protected Boolean doInBackground(String... urls) {
arraylist = new ArrayList<HashMap<String, String>>();
try {
//------------------>>
HttpGet httppost = new HttpGet(urls[0]);
HttpClient httpclient = new DefaultHttpClient();
HttpResponse response = httpclient.execute(httppost);
StatusLine stat = response.getStatusLine();
int status = response.getStatusLine().getStatusCode();
if (status == 200) {
HttpEntity entity = response.getEntity();
String data = EntityUtils.toString(entity);
JSONObject jsono = new JSONObject(data);
JSONArray jarray = jsono.getJSONArray("array");
for (int i = 0; i < jarray.length(); i++) {
HashMap<String, String> map = new HashMap<String, String>();
jsono = jarray.getJSONObject(i);
// Retrive JSON Objects
// Set the JSON Objects into the array
arraylist.add(map);
}
return true;
} else {
Log.e("Error", "Something went wrong");
}
//------------------>>
} catch (ParseException e1) {
e1.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
} catch (JSONException e) {
e.printStackTrace();
}
return false;
}
protected void onPostExecute(Boolean result) {
if (result == false) {
Toast.makeText(getApplicationContext(), "Unable to Fetch data from server", Toast.LENGTH_LONG).show();
}
}
}
私のJSONデータを示して、私はそれにエラーがない確実にしました。
助けてください!
JSONAsyncTaskコードを公開してください。 – MarkySmarky
AsyncTaskクラスが追加されました。 – Sathish