我知道如何使用Volley GET方法进行登录,但如果我需要指定一个特定的“id”,该怎么办?我使用intent将列表项的“id”从远程数据库传递给另一个活动。putExtra。在下一个活动中,我将如何利用凌空的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代码主活动
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。然后我试着做的是,在点击FAB时,应该显示一个来自不同表的评论列表,其中包含产品id。
@Override
protected Map<String, String> getParams() {
HashMap<String,String> params = new HashMap<>();
params.put("deviseType","1");
params.put("langId","1");
params.put("userType","2");
return params;
}
如果要使用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;
}
};
摘自:截击-POST/GET参数
我想截获名为methodA的方法,其中一个参数的类型是String as blow,我应该怎么做。如何使用hasParameters()api?
问题内容: 我正在扩展一个类并覆盖一个方法。我要做的只是调用super,但是调用了一个经过修改的参数,该参数被其方法之一拦截。一个例子使它更加清楚: 我宁愿使用不需要自己的编译器的工具。最佳选择是什么? 问题答案: 鉴于这是一个接口,您可以考虑使用动态代理,该代理将: 包装原始foo 拦截所有消息并将其转发给原始foo 上面的链接中有一个完整的示例。这只是想法: 请注意,如果不是接口,您仍可以手动
问题内容: 我有一个C#/ Selenium / Specflow测试套件,正在使用xunit.console.exe使用Jenkins运行。我需要将这些测试指向不同的环境(Test / QA / Prod等),并想使用命令行参数。 我正在调用的批处理命令是: 并希望包含一个额外的参数,例如: “ -env = PROD”, 以将该作业指向特定的环境。 我愿意采取更好的方法。 问题答案: 对于此解
我想截屏Selenium中的一个元素,根据文档,每个WebElement都有一个功能: 截图(文件名) 将当前元素的屏幕截图保存到PNG图像文件。如果有任何IOError,则返回False,否则返回True。在文件名中使用完整路径。 Args:filename:您希望将屏幕截图保存到的完整路径。这应该以一个简单的结尾。png扩展 用法:元素。截图(“/Screenshots/foo.png”) 但
问题内容: 我有一个用Java编写的小项目,我需要用C#重写它。 差不多完成了,但是我仍然坚持使用Selenium Webdriver获取element的屏幕截图。我是通过Java用以下方式完成的: 它在Java中完美地工作,但是我不知道如何用C#重写它,因为我不太熟悉它。 有人可以提出一些不错的方法来在C#中实现相同的目的吗? 问题答案: 在这里,我编写了一些代码以使用C#拍摄Element的屏
问题内容: 我的目标是获取具有特定参数的最新Jenkins职位(职位名称hanna)。 我这样做的唯一原因是Jenkins从脚本触发时不返回内部版本号,因此我必须传递一个参数,但稍后必须能够对该参数进行查询。 现在我有Rigth,它不返回构建ID: 我得到这样的工作清单: 这不完全是我想要的,因为我也想使用参数来完成作业hanna的最新实例,该返回也将返回,而且我也无法弄清楚Jenkins上存储的