gpt4 book ai didi

java - Android响应脚本问题

转载 作者:行者123 更新时间:2023-12-02 00:43:31 29 4
gpt4 key购买 nike

我正在使用 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 会显示在 toast 最后,如果不存在,则 toast 为空,这是正确的行为。

当我将 -if- 应用于响应时,它总是调用 true 条件,即使表存在。在下面的代码中,如果表存在,那么 res 应该 = 1 并且条件不为真,因此 else block 应该触发,但它永远不会触发。然而,奇怪的是,如果我将一个存在的表传递给脚本,那么 toast 实际上会显示 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
}

最佳答案

在Java中你必须使用equals()来比较字符串

if("1".equals(res)) {...

请注意,您应该使用 "1".equals(res) 而不是 res.equals("1")

如果 res 为 null,则第一个将起作用,因为 equals 处理 null 参数。第二个将得到一个 NullPointerException 因为 res 是 null :)

关于java - Android响应脚本问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5639040/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com