Android не может извлекать данные из php

#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 . Сейчас он работает хорошо. Большое вам спасибо за ответ.