Проблемы сравнения результатов HttResponse в Android - PullRequest
0 голосов
/ 04 октября 2011

У меня возникла проблема при попытке сравнить результат HttpResponse с простой строкой.

То, что делает код ниже, это просто получение ответа Http-запроса. В этом случае результат запроса прост: «хорошо», но когда я пытаюсь сравнить его с другой строкой, условие не работает.

Я могу показать ответ через тост-сообщение ... чтобы отладить его и подтвердить, что это то, что я ожидаю, но я не знаю, почему условие не работает.

Спасибо заранее.

imports go here...</p> <p>public class HttpTest extends Activity {</p> <pre><code>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 работают.

Ответы [ 2 ]

2 голосов
/ 04 октября 2011

Вы не должны использовать оператор равенства для сравнения подобных строк

Попробуйте

result.equals("ok");
0 голосов
/ 04 октября 2011

О, интересно!Я полагаю, что строка, которую вы получаете от ответа Entity, включает в себя также и следующие вещи:

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
<html>

Не просто одну строку «хорошо», как вы думаете.Вот почему сравнение не удается.Вы можете подтвердить ответ по:

string response = EntityUtils.toString(execute.getEntity()); 

Веселитесь:)

...