2017-03-07 2 views
0

저는 Andree와 함께 Volley 라이브러리를 사용하고 있으며 내 서버에서 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); 
    } 
}) 

안드로이드 모니터 ("no_such_table") 예상되는 문자열을 인쇄하고, 아직 다른 케이스가 트리거되고있다 : 나는 다음과 같은 노력하고 있습니다. 발리 라이브러리가있는 서버에서 반환 된 응답 인코딩에 문제가 있습니까?

는 또한

response.toString().equals("no_such_table") 

String.valueOf(response).equals("no_such_table") 

"no_such_table".equals(response) 

"no_such_table".equals(response.toString()) 

을 시도했지만 나는 응답이

$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"; 
} 
+0

응답 JSON 형식 일반적 것, 그것보다 먼저 파싱하고 – Redman

+0

을 비교 [동일한 "보인다"있지만없는 (http://ideone.com/Ff23Ip) 또는 다른 유사한 문제 ... – Selvin

+0

그래, 난 쓸데없는 공간에 대해 생각했지만 replaceAll ("", "") 응답을 사용하여 공간이 있어야하고 아직 작동하지 않습니다 – user2145312

답변

0

"expected_string".equals(response.toString()) 
시도하고 나는 그것을 해결하기 위해 관리! 문자열에 .trim() 메소드를 사용해보세요.

@Override 
public void onResponse(String response) { 
    Log.d("from onResponse()", response); 
    response = response.trim(); 
    if(response.equals("no_such_table")){ 
     //do something 
    }else{ 
     //do something else 
    } 
} 
+0

고마워요. 이것은 효과가 있었다. 왜 이것이 사실인지 아십니까? – user2145312

0

첫 번째 평가로 서버에 PHP 스크립트에 의해 주어진다

예상대로 작동하도록 어차피 당신의 답변 :

@Override 
public void onResponse(String response) { 

    if(response != null && response.equals("expected_string")){ 
     //print log of response when it isnt a null value 
     Log.d("from onResponse()", "datas = " + response); 
     //do something 
    }else{ 
     Log.d("from onResponse()", "null response"); 
     //do something else 
    } 
} 
+0

불행히도 여전히 작동하지 않습니다 – user2145312

0

"expected_string".equals(response) 

또는

저도 같은 문제가있어
+0

저자는이 해결책이 그를 위해 일해도 – msrd0

0
@Override 
public void onResponse(String response) { 
    Log.d("from onResponse()", response); 
    if(("expected_string").equals(response.toString())){ 
     //do something 
    }else{ 
     //do something else 
    } 
} 
+0

불행히도 여전히 작동하지 않습니다 – user2145312