1
我有一個位於localhost:88的兩列(id,name)的數據庫。我試圖從我的android應用程序進入它,但在解析Json時,應用程序給出了JSONException。我試着從沒有Json解析的PHP獲取數據,只是一個字符串。但它只獲得NULL。 這裏是我的PHP腳本:Android的HttpPost從PHP腳本獲取NULL而不是JSONArray
<?php
$con = mysqli_connect('127.0.0.1:3306', 'root', '', 'test');
if(mysqli_connect_errno())
echo 'Failed to connect to MySQL: ' . mysqli_connect_error();
$query = mysqli_query($con, "SELECT * FROM example");
$rows = array();
while($r = mysqli_fetch_assoc($query))
$rows[] = $r;
print(json_encode($rows));
mysqli_close($con);
?>
這是我的方法:
public class MainActivity extends Activity
{
TextView txt;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main_layout);
txt = (TextView) findViewById(R.id.textView);
txt.setText(getDataFromDB());
}
public String getDataFromDB()
{
try
{
HttpPost httpPost = new HttpPost("http://127.0.0.1:88/basicphp/GetData.php");
HttpClient httpClient = new DefaultHttpClient();
ResponseHandler<String> responseHandler = new BasicResponseHandler();
final String response = httpClient.execute(httpPost, responseHandler);
return response.trim();
}
catch(Exception e){
return "error\n" + e.getMessage();
}
}
}
,當我在我的瀏覽器 「http://localhost:88/basicphp/GetData.php
」 的類型,我得到這樣的: 「[{」 ID 「:」 1" , 「名」: 「約翰」}]」。所以我想至少讓我的TextView的這個字符串,但TextView的只得到空:(那麼,我究竟做錯了什麼?
[NetworkOnMainThreadException]的可能性(http://stackoverflow.com/questions/6343166/android-os-networkonmainthreadexception)。考慮使用'AsyncTask'或'Handler'。 – 2014-09-22 07:12:50
試試這個鏈接:http://stackoverflow.com/questions/25884620/get-response-after-posting-to-server/25884706#25884706 – prakash 2014-09-22 07:14:12