Я использую HttpClient, используя метод POST для отправки строки в скрипт. Сценарий работает нормально, он просто проверяет, существует ли таблица в БД. Если таблица существует, «1» возвращается эхом.
В следующем коде все отлично работает
HttpClient client = new DefaultHttpClient();
HttpPost post = new HttpPost("//remote//script.php");
List<NameValuePair> pairs = new ArrayList<NameValuePair>();
pairs.add(new BasicNameValuePair("tblname", concatenated));
try
{
post.setEntity(new UrlEncodedFormEntity(pairs));
}
catch (UnsupportedEncodingException e)
{
e.printStackTrace();
}
try
{
HttpResponse response = client.execute(post);
entity = response.getEntity();
res = EntityUtils.toString(entity); //this is now the echo back from the script, "1" means tbl already exists exists
}
catch (ClientProtocolException e)
{
e.printStackTrace();
}
catch (IOException e)
{
e.printStackTrace();
}
Toast msg1 = Toast.makeText(main.this, res, Toast.LENGTH_LONG);
msg1.setGravity(Gravity.CENTER, msg1.getXOffset() / 2, msg1.getYOffset() / 2);
msg1.show();
SavePreferences("prefs", concatenated);
//fire the authed intent
startauthedactivity();
}
Если таблица, предоставленная для сценария, существует 1, отображается в конце тоста, если его нет, тост пуст, это правильное поведение.
Когда я применяю -if- к ответу, он всегда вызывает истинное условие, даже если таблица существует. В следующем коде, если таблица существует, то res следует = 1, и условие не является истинным, поэтому блок else должен запускаться, но это не происходит. Тем не менее, странно, если я передаю таблицу, которая существует в сценарии, то тост на самом деле отображает 1 ...
if(res != "1")
{
Toast msg1 = Toast.makeText(main.this, res, Toast.LENGTH_LONG);
msg1.setGravity(Gravity.CENTER, msg1.getXOffset() / 2, msg1.getYOffset() / 2);
msg1.show();
SavePreferences("prefs", concatenated);
//fire the authed intent
startauthedactivity();
}
else
{
//do nothing
}