2017-07-30 66 views
-3

MainActivity:凌空onResponse的Android不行

RequestQueue requestQueue; 
String url = "http://andriodtest.eb2a.com/show.php"; 
TextView textView; 
ListView listView; 

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

    textView = (TextView) findViewById(R.id.TextView); 

requestQueue = Volley.newRequestQueue(this); 
JsonObjectRequest jsonObjectRequest = new JsonObjectRequest(Request.Method.GET, url, 
     new Response.Listener<JSONObject>() { 
      @Override 
      public void onResponse(JSONObject response) { 
       Toast.makeText(MainActivity.this, response.toString(), Toast.LENGTH_LONG).show(); 

       try { 
        JSONArray jsonArray = response.getJSONArray("users"); 
        for (int i = 0; i < jsonArray.length(); i++) { 
         JSONObject respons = jsonArray.getJSONObject(i); 
         String id = respons.getString("id"); 
         String info = respons.getString("name"); 
         textView.append(id); 
        } 
       } catch (JSONException e) { 
        e.printStackTrace(); 
       } 

      } 

     }, new Response.ErrorListener() { 
    @Override 
    public void onErrorResponse(VolleyError error) { 
     Log.e("VOLLEY", "ERROR"); 
    } 
} 

); 
requestQueue.add(jsonObjectRequest); 

當運行應用程序沒有數據稱爲 和文件配置爲工作100%。

example

如果設置的TextView = 「文本」 不起作用。

我認爲問題是public void onResponse。 請幫我重要

+1

您的PHP後端未提供JSON,而是原始HTML。 – Enzokie

回答

0

你的代碼看起來很好,但它看起來像你的服務器的響應沒有返回一個JSON對象,而是設置一個cookie JavaScript文件(你可以試着打你的網址與郵差看的javascript迴應我提到)。

Volley希望收到json響應,這可能是您的應用程序目前無法按預期工作的原因。

我可能會嘗試改變服務器響應的方式。以下鏈接爲解決此問題提供了一些建議: Why I can't retrieve data from my webserver as json but i can when i test it on localhost