HttpResponse의 결과를 간단한 문자열과 비교하는 데 문제가 있습니다.android의 HttResponse 결과 비교 문제
아래 코드는 Http 요청의 응답을받는 것입니다. 이 경우 요청의 결과는 간단한 "ok"이지만 다른 문자열과 비교하려고하면 조건문이 작동하지 않습니다.
토스트 메시지를 통해 응답을 표시 할 수 있습니다 ... 디버그하고 예상하고 있는지 확인하려면 있지만 조건부 작동하지 않는 이유를 모르겠습니다.
감사합니다.
imports go here...
public class HttpTest extends Activity {
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
DownloadWebPageTask task = new DownloadWebPageTask();
task.execute(new String[] { "http://www.ecoeficiencia-ambiental.com/test/" });
}
private class DownloadWebPageTask extends AsyncTask<String, Void, String> {
protected String doInBackground(String... urls) {
String response = "";
for (String url : urls) {
DefaultHttpClient client = new DefaultHttpClient();
HttpGet httpGet = new HttpGet(url);
try {
HttpResponse execute = client.execute(httpGet);
InputStream content = execute.getEntity().getContent();
BufferedReader buffer = new BufferedReader(new InputStreamReader(content));
String s = "";
while ((s = buffer.readLine()) != null) {
response += s;
}
} catch (Exception e) {
e.printStackTrace();
}
}
return response;
}
protected void onPostExecute(String result) {
if(result == "ok"){
Toast.makeText(HttpTest.this, result, Toast.LENGTH_LONG).show();
}else{
Toast.makeText(HttpTest.this, "the conditional fails, the result is: "+result, Toast.LENGTH_LONG).show();
}
}
}
}
참고 : 매니페스트가 인터넷을 사용할 수있는 권한이 있습니다. 코드와 URL이 모두 작동합니다.
왜 안 되세요
:
당신은에 의해 reponse를 확인할 수 있습니까? 은 문자열을 비교하기 위해 조건부로 사용됩니다. – DiegoDevelopero
사실 나는 당신의 제안을 테스트 해 보았지만 작동하지만 여전히 "=="를 사용하여 문자열을 비교해서는 안되는 이유는 확실합니다. 저는 안드로이드에 새로운 사람입니다. – DiegoDevelopero
약간의 연구를 수행했습니다. 개체와 equals() 대신 == 사용 개체를 비교하려면 ==를 사용하여 개체가 같은지 또는 같음을 확인해야 하는지를 알아야합니다() 다른 객체가 될 수 있지만 동일한 값을 가지고 있는지 확인하십시오. 이런 종류의 오류는 찾기가 매우 어려울 수 있습니다. - Interesnting ... 나는 그것을 몰랐다. 도와 주셔서 정말 감사합니다. :) – DiegoDevelopero