如何使用指定参数的Android Volley GET方法?

Ste*_* C. 3 php android android-volley

我知道如何使用Volley GET方法进行登录,但如果需要指定特定的"id"怎么办?我使用intent.putExtra将列表项的"id"从远程数据库传递到另一个活动.在下一个活动中,我将如何利用Volleys的GET方法使用通过"id"传递的另一个表来解析和显示数据?

在浏览器中,我可以使用以下内容来获取具有指定url和参数的响应:

http://localhost/demoapp/fetch.php?pid=2
Run Code Online (Sandbox Code Playgroud)

但我不知道如何将该URL传递给Volley请求并在列表视图中显示响应.像这样的东西:

"http://localhost/demoapp/fetch.php?pid=" + pid
Run Code Online (Sandbox Code Playgroud)

其中"pid"将是相应id的传递字符串.

编辑:PHP代码

    <?php
include_once("config.php");

$query=mysqli_query($con,"SELECT * FROM comments WHERE pid=".$_GET['pid']);

$array;
while($result=mysqli_fetch_assoc($query)){

$array[]=$result;
}

echo json_encode($array);
?>
Run Code Online (Sandbox Code Playgroud)

编辑2:JAVA代码 主要活动

    JsonArrayRequest request = new JsonArrayRequest(url+url_file,
                new Response.Listener<JSONArray>() {
                    @Override
                    public void onResponse(JSONArray response) {
                        Log.d(TAG, response.toString()); try {
                            for(int i=0;i<response.length();i++){
                                String pid=response.getJSONObject(i).getString("pid");
                                String name=response.getJSONObject(i).getString("product_name");
                                String img;
                                String thumb = response.getJSONObject(i).getString("product_thumb");
                                String detail = response.getJSONObject(i).getString("product_detail");
                                String rating = response.getJSONObject(i).getString("product_rating");

                                img = response.getJSONObject(i).getString("product_pic");

                                rowdata.add(new ProductRowData(pid,name,img,thumb,detail,rating));
                            }
                        } catch (JSONException e) {
                            // TODO Auto-generated catch block
                            e.printStackTrace();
                        }
                        adapter=new ProductsAdapter(MainActivity.this, rowdata);
                        list.setAdapter(adapter);
                        dialog.dismiss();
                    }
                }, new Response.ErrorListener() {
            @Override
            public void onErrorResponse(VolleyError error) {
                Log.d(TAG, "Error: " + error.getMessage());
                dialog.dismiss();
            }
        });

        VolleyController.getInstance().addToRequestQueue(request, tag_json_arry);
Run Code Online (Sandbox Code Playgroud)

单击列表项时,其余数据将使用intent.putExtra传递给详细活动.我当时尝试做的是,在点击FAB时,应显示来自具有该产品ID的不同表的评论列表.

dan*_*dan 5

如果要使用GET,可以使用url参数创建请求:

String uri = String.format("http://localhost/demoapp/fetch.php?pid=%1$s", pid);

StringRequest myReq = new StringRequest(Method.GET,
                                    uri,
                                    createMyReqSuccessListener(),
                                    createMyReqErrorListener());
Run Code Online (Sandbox Code Playgroud)

或者更好,你可以使用POST:

StringRequest stringRequest = new StringRequest(Request.Method.POST, "http://localhost/demoapp/fetch.php", new Response.Listener<String>()
{
    @Override
    public void onResponse(String s)
    {
    }
}, new Response.ErrorListener()
{
    @Override
    public void onErrorResponse(VolleyError volleyError)
    {
    }
})
{
    @Override
    protected Map<String, String> getParams()
    {
        Map<String, String> params = new HashMap<String, String>();
        params.put("id", pid);
        return params;
    }
};
Run Code Online (Sandbox Code Playgroud)

取自:Volley - POST/GET参数