0
I'm检索从外部数据库值到一个Android应用程序做的是这样的服务器上的服务的调用检索。这里的php文件:检查空值从外部服务
$mysqli = new mysqli(DB_HOST, DB_USER, DB_PASSWORD, DB_NAME);
if (!$mysqli) {
die('Connect Error (' . mysqli_connect_errno() . ') ' . sqli_connect_error());
}
$q=mysqli_query($mysqli, "SELECT title FROM post WHERE UPPER(title) LIKE UPPER('%" . $_REQUEST['searchThis'] . "%')");
while($e=mysqli_fetch_assoc($q)){
$output[]=$e;
}
print(json_encode($output));
mysqli_close();
这是我的班做什么(我只是写的事项的代码):
try{
HttpClient httpclient = new DefaultHttpClient();
HttpPost httppost = new HttpPost(URL);
httppost.setEntity(new UrlEncodedFormEntity(nameValuePairs));
HttpResponse response = httpclient.execute(httppost);
HttpEntity entity = response.getEntity();
is = entity.getContent();
}
catch(Exception e){
Log.e("CONNECTION_ERROR", "Error in http connection "+e.toString());
}
try{
BufferedReader reader = new BufferedReader(new InputStreamReader(is,"iso-8859-1"),8);
StringBuilder sb = new StringBuilder();
String line = null;
while ((line = reader.readLine()) != null) {
sb.append(line + "\n");
}
is.close();
result=sb.toString();
///-------------SYSTEM OUTS---------------
System.out.println(result);
System.out.println(result.getClass().getName());
}
catch(Exception e){
Log.e("BUFFER_ERROR", "Error converting result "+e.toString());
}
//------------------PROBLEMS---------------
if(result.equalsIgnoreCase("null")){
list.add("empty");
}
else{
try{
JSONArray jArray = new JSONArray(result);
for(int i=0;i<jArray.length();i++){
JSONObject json_data = jArray.getJSONObject(i);
//Log.i("result",json_data.getString("title"));
String title = json_data.getString("title");
list.add(title);
}
}
catch(JSONException e){
Log.e("DATA_PARSING_ERROR", "Error parsing data "+e.toString());
}
}
return list;
}
我试过白衣日志和打印和就是我得到的是:
null //FOR System.out.println(result);
java.lang.String //for System.out.println(result.getClass().getName());
在服务器上的PHP服务返回的东西它的工作原理,但问题是,当我将结果与“null”进行比较,即使结果是值为“null”的字符串,也始终为false。当然,我遇到了JSON异常,因为结果不是有效的转换格式。这里可能有什么错误?
最愚蠢的mystake永远...谢谢。 – 2013-02-14 15:26:18