我正在使用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