-1

I have stored some data in mysql database stored on the web. I am using php script on web and JSON Object in the application but I am getting an error in parsing the data.

I am able to see the data in the webpage that is coming from the MySql server. But when run the application and try to fetch the data the Process Dialogue doesn't ends and the below parsing error is thrown from the catch block.

Error Log

Error parsing data org.json.JSONException: Value <html><body><script of type java.lang.String cannot be converted to JSONArray

Here is my code. AddTopic.java

public class AddTopic extends Activity implements View.OnClickListener {
Button fetch;
TextView text;
EditText et;

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.data);

    fetch= (Button) findViewById(R.id.fetch);
    text = (TextView) findViewById(R.id.text);
    et = (EditText) findViewById(R.id.et);
    fetch.setOnClickListener(this);
}

class task extends AsyncTask<String, String, Void>
{
    private ProgressDialog progressDialog = new ProgressDialog(AddTopicFragment.this);
    InputStream is = null ;
    String result = "";
    protected void onPreExecute() {
        progressDialog.setMessage("Fetching data...");
        progressDialog.show();
        progressDialog.setOnCancelListener(new DialogInterface.OnCancelListener() {
            @Override
            public void onCancel(DialogInterface arg0) {
                task.this.cancel(true);
            }
        });
    }
    @Override
    protected Void doInBackground(String... params) {
        String url_select = "http://swachapp.byethost32.com/demo.php";

        HttpClient httpClient = new DefaultHttpClient();
        HttpPost httpPost = new HttpPost(url_select);

        ArrayList<NameValuePair> param = new ArrayList<NameValuePair>();

        try {
            httpPost.setEntity(new UrlEncodedFormEntity(param));

            HttpResponse httpResponse = httpClient.execute(httpPost);
            HttpEntity httpEntity = httpResponse.getEntity();

            //read content
            is =  httpEntity.getContent();


        } catch (Exception e) {

            Log.e("log_tag", "Error in http connection "+e.toString());
            //Toast.makeText(MainActivity.this, "Please Try Again", Toast.LENGTH_LONG).show();
        }
        try {
            BufferedReader br = new BufferedReader(new InputStreamReader(is, HTTP.UTF_8),8);
            StringBuilder sb = new StringBuilder();
            String line = "";
            while((line=br.readLine())!=null)
            {
                sb.append(line+"\n");
            }
            is.close();
            result=sb.toString();

        } catch (Exception e) {
            // TODO: handle exception
            Log.e("log_tag", "Error converting result "+e.toString());
        }

        return null;

    }
    protected void onPostExecute(Void v) {

        // ambil data dari Json database
        try {
            JSONArray Jarray = new JSONArray(result);
            for(int i=0;i<Jarray.length();i++)
            {
                JSONObject Jasonobject = null;
                //text_1 = (TextView)findViewById(R.id.txt1);
                Jasonobject = Jarray.getJSONObject(i);

                //get an output on the screen
                //String id = Jasonobject.getString("id");
                String name = Jasonobject.getString("headings");
                String db_detail="";

                if(et.getText().toString().equalsIgnoreCase(name)) {
                    db_detail = Jasonobject.getString("detailstory");
                    text.setText(db_detail);
                    break;
                }
                //text_1.append(id+"\t\t"+name+"\t\t"+password+"\t\t"+"\n");

            }
            this.progressDialog.dismiss();

        } catch (Exception e) {
            // TODO: handle exception
            Log.e("log_tag", "Error parsing data " + e.toString());
        }
    }
}

@Override
public void onClick(View v) {
    // TODO Auto-generated method stub
    switch(v.getId()) {
        case R.id.fetch : new task().execute();break;
    }

}
}

Thanks for the time.

Yogesh Yadav
  • 133
  • 3
  • 11

1 Answers1

0

The issue is not related to Android or PHP. It is related to your hosting server. It expects cookies and javascript to handle the request. When I browse the url in Google Chrome, it displays the result as JSONArray. When I try to run the url using Android HttpClient, it produces the results as " ...."

Check the answer in the below link. Getting HTML response instead of JSON in android

Community
  • 1
  • 1
BhagyaNivi
  • 741
  • 6
  • 12