#php #android
#php #Android
Вопрос:
Я использую этот adt-код для извлечения данных echo из php url.
class asynctask extends AsyncTask<String, String, String>{
@Override
protected String doInBackground(String... uri) {
HttpClient httpclient = new DefaultHttpClient();
HttpResponse response;
String responseString = null;
try {
response = httpclient.execute(new HttpGet(uri[0]));
StatusLine statusLine = response.getStatusLine();
if(statusLine.getStatusCode() == HttpStatus.SC_OK){
ByteArrayOutputStream out = new ByteArrayOutputStream();
response.getEntity().writeTo(out);
responseString = out.toString();
out.close();
} else{
//Closes the connection.
response.getEntity().getContent().close();
}
} catch (ClientProtocolException e) {
//TODO Handle problems..
} catch (IOException e) {
//TODO Handle problems..
}
return responseString;
}
@Override
protected void onPostExecute(String result) {
super.onPostExecute(result);
///////////////////////////////////////////////
Toast.makeText(getApplicationContext(), result, Toast.LENGTH_LONG).show();
try {
// txv1.setText(result);
}
catch (Exception e) {
// TODO: handle exception
}
}
}
И вызывать из —
new asynctask().execute("http://mmbics.com/get.php");
Это действительно не работает, даже я вижу, что отражается на php url. Он может показывать другое php-эхо без запроса mysql. Пожалуйста, любезно помогите мне.
Он также не может отображать это php echo.
http://mmbics.com/index.php
Комментарии:
1. У меня есть предыдущий опыт получения данных json из php url в Android, вы можете использовать PHP для назначения объекта как json. Тогда вы можете использовать getJsonFromUrl api на java..
2. Извините, вы публикуете отличный комментарий для решения проблемы. Но теперь я решил это, это проблема php mysql, и я разделяю echo php и config php . Сейчас он работает хорошо. Большое вам спасибо за ответ.
Ответ №1:
Сначала я бы предположил, что DefaultHttpClient устарел. Вы должны изменить его на клиент OkHttp или HttpUrlConnect. Смотрите приведенный ниже фрагмент кода, который вы можете использовать в качестве ссылки для выполнения этого запроса get.
OkHttpClient client = new OkHttpClient();
Request request = new Request.Builder()
.url("http://mmbics.com/get.php")
.get()
.build();
Response response = client.newCall(request).execute();
Дайте мне знать, если вы придерживаетесь этого.Это простой вызов Http Get Request.
Спасибо.
Комментарии:
1.
OkHttpClient
это внешняя библиотека?2. Извините, вы публикуете отличный ответ для решения проблемы. Но теперь я решил это, это проблема php / mysql, и я разделяю echo php и config php . Сейчас он работает хорошо. Большое вам спасибо за ответ.
Ответ №2:
Используйте Volley в его библиотеке network connectoin, это простая и мощная библиотека, поэтому лучше называть ваш URL следующим образом,
StringRequest strReq = new StringRequest(Method.GET,
Const.URL_STRING_REQ, new Response.Listener<String>() {
@Override
public void onResponse(String response) {
Log.d(TAG, response.toString());
msgResponse.setText(response.toString());
hideProgressDialog();
}
}, new Response.ErrorListener() {
@Override
public void onErrorResponse(VolleyError error) {
VolleyLog.d(TAG, "Error: " error.getMessage());
hideProgressDialog();
}
}) {
@Override
public Priority getPriority() {
return priority;
}
};
проверьте эту ссылку: http://www.androidhive.info/2014/05/android-working-with-volley-library-1 /
Комментарии:
1. Извините, вы публикуете отличный ответ для решения проблемы. Но теперь я решил это, это проблема php mysql, и я разделяю echo php и config php . Сейчас он работает хорошо. Большое вам спасибо за ответ.