从php服务器到android的数据转换失败
这部分编码有错误吗?我不明白具体的问题在哪里。作为我的结果=空。在传递到php并获得php服务器回复之后。它没有按应有的方式检索数据。调试并没有出现错误,应用程序正在工作,但它并不像我编程的那个样运行。。。有人能从这个零件上看到任何环孔吗从php服务器到android的数据转换失败,android,eclipse,android-emulator,Android,Eclipse,Android Emulator,这部分编码有错误吗?我不明白具体的问题在哪里。作为我的结果=空。在传递到php并获得php服务器回复之后。它没有按应有的方式检索数据。调试并没有出现错误,应用程序正在工作,但它并不像我编程的那个样运行。。。有人能从这个零件上看到任何环孔吗 BufferedReader reader = new BufferedReader(new InputStreamReader(is,"iso-8859- 1"),8); sb = new StringBuil
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();
PHP编码端
$db_host = "localhost";
$db_username = "root";
$db_pass = "trickster911";
$db_name = "track_database";
@mysql_connect("$db_host","$db_username","$db_pass") or die ("Could not connect to database");
@mysql_select_db("$db_name");
$imei = $_POST['code3'];
$sql=("SELECT latitude, longitude FROM track WHERE imei = ('$imei')") or die (mysql_error());
$result=mysql_query($sql);
if($result){
echo "Y";
}
else {
echo "N";
}
$output = array();
while($row=mysql_fetch_assoc($result))
$output[]=$row;
print(json_encode($output));
mysql_close();
?>
调试后,
JSONTokener.nextCleanInternal() line: 112
JSONTokener.nextValue() line: 90
JSONObject.<init>(JSONTokener) line: 154
JSONObject.<init>(String) line: 171
Tracking$1.onClick(View) line: 119
Button(View).performClick() line: 2408
View$PerformClick.run() line: 8816
ViewRoot(Handler).handleCallback(Message) line: 587
ViewRoot(Handler).dispatchMessage(Message) line: 92
Looper.loop() line: 123
ActivityThread.main(String[]) line: 4627
Method.invokeNative(Object, Object[], Class, Class[], Class, int, boolean) line: not available [native method]
Method.invoke(Object, Object...) line: 521
ZygoteInit$MethodAndArgsCaller.run() line: 868
ZygoteInit.main(String[]) line: 626
NativeStart.main(String[]) line: not available [native method]
JSONTokener.nextCleanInternal()行:112
JSONTokener.nextValue()行:90
JSONObject.(JSONTokener)行:154
JSONObject.(字符串)行:171
跟踪$1.onClick(视图)行:119
按钮(视图)。performClick()行:2408
查看$PerformClick.run()行:8816
ViewRoot(处理程序).handleCallback(消息)行:587
ViewRoot(处理程序)。dispatchMessage(消息)行:92
Looper.loop()行:123
ActivityThread.main(字符串[])行:4627
invokenactive(Object,Object[],Class,Class[],Class,int,boolean)行:不可用[本机方法]
调用(对象,对象…)行:521
ZygoteInit$MethodAndArgsCaller.run()行:868
颧骨单位。主(字符串[])行:626
NativeStart.main(字符串[])行:不可用[本机方法]
而不是:
$sql=("SELECT latitude, longitude FROM track WHERE imei = ('$imei')") or die (mysql_error());
试试这个:
$sql=("SELECT latitude, longitude FROM track WHERE imei = '".$imei."'") or die (mysql_error());
我不确定,但也许你的问题就是因为这个。如果它能解决您的问题,请给出一些反馈。
结果
绝对不是空的StringBuilder.toString()
从不返回null。除此之外,我们没有足够的信息来完全回答问题——例如,我们不知道PHP服务器正在使用什么编码。当然,编码名称中不应该有所有的空格……我首先将result=null。然后我希望在从服务器接收到数据后,它会自动覆盖它。。。但确实如此。所以我怀疑这是错误的一部分。如果你只看到result
为null,那么你永远不会看到最后一行代码。但恐怕我们无法一行一行地引导您完成整个诊断过程。你用过调试器吗?有多远?它读过一行吗?我调试过,它给了我一个错误,告诉我结果不可读。如果我运行这个应用程序,它只会给出result=null的值,而不是从php服务器端获取的数据。就像以前一样,当涉及到调试时,您需要在通信中更加清晰。您将无法使用result
,除非您为其指定了一个值,但您应该能够在这之前逐步执行。如果没有比您目前所展示的更仔细的调试(和报告),恐怕我们将无法帮助您。我建议你花一点时间,仔细地调试(最好是创建了一个简短但完整的Java控制台应用程序——我怀疑Android与此无关),准确地报告发生了什么,并将所有这些编辑到你的问题中。这变得最糟糕了。PHP弹出窗口在更改为您的建议后出现语法错误。无论如何,TQ。您在PHP中也可以使用JSON格式打印回显。我建议您尝试在不同的时间发送和接收回显和打印值。如果在接收这两个值时出现混淆,您可以更容易地看到。