gpt4 book ai didi

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

转载 作者:太空宇宙 更新时间:2023-11-03 12:49:05 24 4
gpt4 key购买 nike

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

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

http://localhost/demoapp/fetch.php?pid=2

但我不知道如何将该 url 传递给 Volley 请求并在 ListView 中显示响应。像这样:

"http://localhost/demoapp/fetch.php?pid=" + pid

其中“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);
?>

编辑 2:JAVA 代码主要 Activity

    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);

单击列表项时,其余数据将使用 intent.putExtra 传递到详细信息 Activity 。然后我要做的是,在单击 FAB 后,应显示来自具有该产品 ID 的不同表格的评论列表。

最佳答案

如果你想使用 GET,你可以创建带有 url 参数的请求:

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

StringRequest myReq = new StringRequest(Method.GET,
uri,
createMyReqSuccessListener(),
createMyReqErrorListener());

或者更好的是,您可以使用 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;
}
};

取自:Volley - POST/GET parameters

关于php - 如何使用指定参数的 Android Volley GET 方法?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35839456/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com