Volly JsonArrayRequest没有从Laravel网站获取数据

时间:2018-02-01 01:54:37

标签: php android laravel

我试图在我的laravel网站上使用volly在Android应用程序中获取jsonArray,但是我什么也没得到,甚至错误列表方法都没有被解雇。 我知道返回的laravel响应有问题,但我无法理解。请一些人访问网址并指出遗漏的内容。如果我用第二个url交换请求,我在调试时得到正确的jsonArray。这两个都是url

//this returns nothing in Volly  .
public static String urlPath = "http://staging.megabix.com/api/v1/terms/1/subTerms"

//This one works fine

public static String urlPath = "http://shakeelnawaz.com/soccerquiz/process.php?action=show_category"; 

以下是我的volly请求代码

public void JSON_HTTP_CALL() {

    RequestOfJSonArray = new JsonArrayRequest(HTTP_JSON_URL,

            new Response.Listener<JSONArray>() {
                @Override
                public void onResponse(JSONArray response) {
                    Log.d("shahid", "onResponse: "+response);

                    ParseJSonResponse(response);
                }
            },
            new Response.ErrorListener() {
                @Override
                public void onErrorResponse(VolleyError error) {
                    Log.d("shahid", "Error getting Response: ");

                }
            });

在我的Laravel网站上,我正在使用此代码。

public function getSubTerms(Term $term){
    $subTerms= $term->subTerms;
    $a=$subTerms;

    //This does not work in volly
     return $a;

    //Nor this worked
    return response()->json($a,200);

如果有人能在这方面帮助我,我将非常感激。

2 个答案:

答案 0 :(得分:0)

你需要在android中获取数据后返回JsonEncoded String,只需转换Array Object。

答案 1 :(得分:0)

以下是调用的方式是错误而不是php错误我会给代码尝试然后让我知道刚才我尝试了朋友。

public void JSON_HTTP_CALL() {
    // Instantiate the RequestQueue.
    RequestQueue queue = Volley.newRequestQueue(this);
    String urlPath = "http://staging.megabix.com/api/v1/terms/1/subTerms";


    // Request a string response from the provided URL.
    StringRequest stringRequest = new StringRequest(Request.Method.GET, urlPath,
            new Response.Listener<String>() {
                @Override
                public void onResponse(String response) {
                    // Display the first 500 characters of the response string.
                    Toast.makeText(MainActivity.this, "That work!", Toast.LENGTH_SHORT).show();

                }
            }, new Response.ErrorListener() {
        @Override
        public void onErrorResponse(VolleyError error) {
            Toast.makeText(MainActivity.this, "That didn't work!", Toast.LENGTH_SHORT).show();
        }
    });
        // Add the request to the RequestQueue.
    queue.add(stringRequest);
}

首先需要创建RequestQueue对象谢谢尝试让我知道。

Manifest文件中的一件事确实添加了这一行确保

    <uses-permission android:name="android.permission.INTERNET" />