【发布时间】:2014-05-20 03:42:06
【问题描述】:
请帮助我,我正在尝试通过 php 和 json 数组中的连接将我的 android 应用程序连接到 localhost 中的 mysql 数据库,但我无法弄清楚问题是什么,我无法查看数据库中的数据。
这是我的文件。
Connection.php
<?php
$db_con = mysqli_connect('localhost', 'root', '', 'android') or die ("connection error");;
$query = "SELECT * FROM product";
$results = mysqli_query($db_con, $query) or die ("query error");;
while($row = mysqli_fetch_assoc($results)){
$output[]=$row;
}
echo json_encode($output);
?>
这就是android java "MainActivity.java":
public class MainActivity extends ActionBarActivity {
TextView viewItem;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.fragment_main);
viewItem = (TextView) findViewById(R.id.itemView);
// Button btnViewItems = (Button) findViewById(R.id.btnViewItems);
getData();
}
public void getData() {
String results = "";
InputStream isr = null;
// Http post
try {
HttpClient httpclient = new DefaultHttpClient();
HttpPost httppost = new HttpPost(
"http://10.0.2.2:8080/android/Connection.php");
HttpResponse response = httpclient.execute(httppost);
HttpEntity entity = response.getEntity();
} catch (Exception e) {
Log.e("log-tag", "Error in http connection" + e.toString());
viewItem.setText("Cannot connect to database");
}
// Converting response to string
try {
BufferedReader reader = new BufferedReader(new InputStreamReader(
isr, "iso-8859-1"), 8);
StringBuilder sb = new StringBuilder();
String line = null;
while ((line = reader.readLine()) != null) {
sb.append(line + "\n");
}
isr.close();
results = sb.toString();
} catch (Exception e) {
Log.e("log-tag", "Error Converting string" + e.toString());
viewItem.setText("Cannot convert string");
}
// prase jason data
try {
String s = "";
JSONArray jArray = new JSONArray(results);
for (int i = 0; i < jArray.length(); i++) {
JSONObject jOb = jArray.getJSONObject(i);
s = s + jOb.getString("id") + " || " + jOb.getString("name")
+ " || " + jOb.getString("cost") + "\n\n";
}
viewItem.setText(s);
} catch (Exception e) {
Log.e("log-tag", "prasing json data" + e.toString());
viewItem.setText("cannot prase json data");
}
}
}
外面一直在说:“无法使用 json 数据”。
这是日志错误:
E/log-tag(1904): Error in http connectionandroid.os.NetworkOnMainThreadException
E/log-tag(1904): Error Converting stringjava.lang.NullPointerException: lock == null
E/log-tag(1904): prasing json dataorg.json.JSONException: End of input at character 0 of
谢谢
【问题讨论】:
-
异常说明了什么?
-
发布有关您遇到的异常的问题时,始终包含完整的异常详细信息。目前您正在捕获该异常,记录是,而不是告诉我们它说了什么,有效地挫败了平台试图为您提供的所有帮助。
-
请同时包含来自 logcat 的日志 :)
-
对不起,这是异常错误:05-19 23:34:30.525:E/log-tag(1904):http 连接出错android.os.NetworkOnMainThreadException 05-19 23:34: 30.525:E/log-tag(1904):转换字符串时出错。 字符 0 处的输入
-
请在此处打印您的 json reposnce..以便我们为您提供帮助//
标签: java php android mysql json