簡體   English   中英

Android無法從php獲取數據

[英]Android can't fetch data from php

我正在使用此adt代碼從php url獲取echo數據。

  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上的回聲是什么,它確實無法正常工作。 它可以顯示其他沒有mysql請求的php echo。 請幫助我。 它也無法顯示這個php回音。

  http://mmbics.com/index.php

首先,我建議不推薦使用DefaultHttpClient。 您應該將其更改為OkHttp客戶端或HttpUrlConnect。 請參閱下面的代碼段,您可以將其作為獲取此請求的參考。

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電話。

謝謝。

使用Volley它的網絡connectoin lib,它簡單而強大的lib,所以最好用這個來調用你的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/

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM