【发布时间】:2016-03-28 16:01:44
【问题描述】:
我对 android 开发相当陌生,我正在尝试发出一个 android volley 请求,该请求将一个 ID 发送到 php 服务,如果它在服务器端匹配,它应该在 json 中返回与其关联的所有值,然后在 android 应用程序上收到并显示。任何帮助将不胜感激
<?php
require("include/config.php");
if (!empty($_POST)) {
$query = " SELECT * FROM music WHERE musicID = :ID " ;
$query_params = array(
':ID' => $_POST['ID'],
);
try {
$statement = $db->prepare($query);
$result = $statement->execute($query_params);
}
catch (PDOException $ex) {
$response["success"] = 0;
$response["message"] = " error";
die(json_encode($response));
}
$result = $statement->fetchAll();
if($result){
$return =array();
foreach($result as $rows){
$json = array();
$json["title"] = $rows["title"];
$json["rating"]= $rows["rating"];
$json["Price"] = $rows["Price"];
$json["Description"] = $rows["Description"];
array_push ($return,$json);
}
echo stripcslashes(json_encode($datareturn, JSON_PRETTY_PRINT));
}
} else {
}
?>
android 凌空请求
JsonArrayRequest jsonArrayRequest=new JsonArrayRequest(URL, new Response.Listener<JSONArray>() {
@Override
public void onResponse(JSONArray response) {
for(int i=0;i<response.length();i++){
try{
JSONObject obj=response.getJSONObject(i);
Item item=new Item();
item.setTitle(obj.getString("title"));
item.setImage(obj.getString("image"));
//add to array
array.add(item);
}catch(JSONException ex){
ex.printStackTrace();
}
}
adapter.notifyDataSetChanged();
}
}, new Response.ErrorListener() {
@Override
public void onErrorResponse(VolleyError error) {
}
});
AppController.getmInstance().addToRequesQueue(jsonArrayRequest,ID);
【问题讨论】:
-
您面临哪些问题?
-
我没有从服务器返回任何东西,例如项目数组为空。无法弄清楚到底出了什么问题。我用 html 表单仔细检查了脚本,它工作正常。所以java代码请求有问题
-
您如何在服务器上收到
ID字段?在 RequestBody 或 url 路径中。
标签: php android json android-volley