我正在使用Volley库和android并从我的服务器获取作为String对象的响应,但无法正确比较它。我尝试以下操作:排球反应字符串在if语句中没有正确比较
RequestQueue queue = Volley.newRequestQueue(this);
String url = "http://www...";
StringRequest postRequest = new StringRequest(Request.Method.POST, url,
new Response.Listener<String>() {
@Override
public void onResponse(String response) {
Log.d("from onResponse()", response);
if(response.equals("no_such_table")){
//do something
}else{
//do something else
}
}
},
new Response.ErrorListener() {
@Override
public void onErrorResponse(VolleyError error) {
onTaskFailed(error);
}
})
Android的监视器打印出预期的字符串(“no_such_table”),但在其他情况下被触发。使用volley库从服务器返回的响应的编码是否存在问题?
我也曾尝试
response.toString().equals("no_such_table")
String.valueOf(response).equals("no_such_table")
"no_such_table".equals(response)
"no_such_table".equals(response.toString())
,但我不能得到预期
响应由PHP脚本提供的服务器上为
$val = mysql_query('select 1 from `" . $device_group_id . "` LIMIT 1');
if($val == FALSE){
//table does not exist so return message
echo "no_such_table";
}
响应通常在JSON格式,它能够更好地第一解析它,然后比较 – Redman
[“看起来”相等,但它们不是](http://ideone.com/Ff23Ip)或任何其他类似的问题... – Selvin
是的,我曾考虑过有害的空间,但使用replaceAll(“”,“”)作为回应不应该有任何空格,仍然不能正常工作 – user2145312