Подключите Android с SQL через php веб-сервисов

Я сохранил некоторые данные в базе данных MySQL, хранящейся в Интернете. Я использую php скрипт в сети и JSON Object в приложении, но получаю ошибку при разборе данных.

Я могу видеть данные на веб-странице, которая поступает с сервера MySql. Но при запуске приложения и попытке извлечь данные диалог процесса не заканчивается, и из блока catch выдается ошибка разбора ниже.

Журнал ошибок

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

Вот мой код
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;
}

}
}

Спасибо за время.

-1

Решение

Проблема не связана с Android или PHP. Это связано с вашим хостинг-сервером. Он ожидает, что файлы cookie и javascript будут обрабатывать запрос. Когда я просматриваю URL в Google Chrome, он отображает результат в виде JSONArray. Когда я пытаюсь запустить URL с помощью Android HttpClient, он выдает результаты как
«….»

Проверьте ответ в ссылке ниже.
Получение ответа HTML вместо JSON в Android

0

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]