我正在开发一个Android应用程序,在那里我查询我的api并返回值。
这样可以正常工作,但是当查询没有找到任何值(数据库中没有结果)时,我有点卡住了
这是我的api中返回结果的一部分
if (empty($rows))
{
//deliver_response(404,"Item not found",NULL);
$encode = array("List" => $rows);
$json_response=json_encode($encode);
}
else
{
$encode = array("List" => $rows);
$json_response=json_encode($encode);
echo $json_response;
}
和我的Android代码的一部分
if (status == 200) {
HttpEntity entity = httpResponse.getEntity();
String data = EntityUtils.toString(entity);
if (data.equals(""))
{
Toast.makeText(getBaseContext(),"No Results Found",Toast.LENGTH_LONG).show();
}else {
JSONObject jobj = new JSONObject(data);
JSONArray jsonArray = jobj.getJSONArray("List");
当我在String data = EntityUtils.toString(entity);
上放置一个断点时,数据为data="\n\n"
但是,当我有if (data.equals(""))
和if (data.equals("\n\n"))
时,忽略if并进入其他地方。
想知道是否有人可以协助我纠正这个问题。
谢谢
答案 0 :(得分:0)
我认为在您的Web服务响应中使用消息密钥更为明智,因此消息密钥将始终具有来自服务器的消息,即未找到记录,成功,失败(如果查询执行中出现某些错误)
在Android中,您应该始终检查消息,并根据该消息向用户显示相应的消息。
示例json响应
{“list”:[ 1, 2, 3],“消息”:“没有找到记录”}