Java 从PHP到Android的Bool HTTP响应
我在实现一个程序时遇到了一个小问题,该程序检查MySQL数据库中的值,然后根据值的存在返回“True”或“False”。我可以使用以下代码让PHP返回值(在本例中以“A”开头)(它还显示Java日志中的匹配行):Java 从PHP到Android的Bool HTTP响应,java,php,android,mysql,httpresponse,Java,Php,Android,Mysql,Httpresponse,我在实现一个程序时遇到了一个小问题,该程序检查MySQL数据库中的值,然后根据值的存在返回“True”或“False”。我可以使用以下代码让PHP返回值(在本例中以“A”开头)(它还显示Java日志中的匹配行): 您已经足够接近了,但不要只返回True或False结果。我强烈推荐一位占位符,例如{result:True/False}作为回答。如果为True,则可以添加更多数据,如果为false,则不发送任何数据 因此,在android端,您将一直获得JSONObject。那就检查一下 if (
您已经足够接近了,但不要只返回True或False结果。我强烈推荐一位占位符,例如{result:True/False}作为回答。如果为True,则可以添加更多数据,如果为false,则不发送任何数据
因此,在android端,您将一直获得JSONObject。那就检查一下
if (result != null && result.has("result")){
if(result.optBoolean("result", false)){
// Now parse and get all your data
}else{
// If you are running is thread, then run on UI thread and show Toast
}
}
<?php
mysql_connect("host","username","password");
mysql_select_db("Deal");
$sql = mysql_query("select * from CITY where CITY_NAME like 'A%'") or die(mysql_error());
if ($sql) {
if(mysql_num_rows($sql) == 0) {
$row = "False";
print(json_encode($row);
mysql_close();
}
else {
$row = "True";
//while($row = mysql_fetch_assoc($sql))
//$output[]=$row;
print(json_encode($row);
//print(json_encode($output));
mysql_close();
}
}
?>
public class CityActivity extends ListActivity {
JSONArray jArray;
String result = null;
InputStream is = null;
StringBuilder sb=null;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
ArrayList<NameValuePair> nameValuePairs = new ArrayList<NameValuePair>();
//http post
try{
HttpClient httpclient = new DefaultHttpClient();
HttpPost httppost = new HttpPost("http://www.example.com/example.php");
httppost.setEntity(new UrlEncodedFormEntity(nameValuePairs));
HttpResponse response = httpclient.execute(httppost);
HttpEntity entity = response.getEntity();
is = entity.getContent();
}catch(Exception e){
Log.e("log_tag", "Error in http connection"+e.toString());
}
//convert response to string
try{
BufferedReader reader = new BufferedReader(new InputStreamReader(is,"iso-8859-1"),8);
sb = new StringBuilder();
sb.append(reader.readLine() + "\n");
String line="0";
while ((line = reader.readLine()) != null) {
sb.append(line + "\n");
}
is.close();
result=sb.toString();
}catch(Exception e){
Log.e("log_tag", "Error converting result "+e.toString());
}
//paring datag
try{
jArray = new JSONArray(result);
JSONObject json_data=null;
for(int i=0;i<jArray.length();i++){
String myString ="";
json_data = jArray.getJSONObject(i);
int ct_id = json_data.getInt("CITY_ID");
String ct_name = json_data.getString("CITY_NAME");
myString = Integer.toString(ct_id);
Log.i(ct_name, myString);
}
}
catch(JSONException e1){
Toast.makeText(getBaseContext(), "No City Found" ,Toast.LENGTH_LONG).show();
} catch (ParseException e1) {
e1.printStackTrace();
}
}
}
if (result != null && result.has("result")){
if(result.optBoolean("result", false)){
// Now parse and get all your data
}else{
// If you are running is thread, then run on UI thread and show Toast
}
}