gpt4 book ai didi

php - 从MySQL数据库读取数据到android

转载 作者:行者123 更新时间:2023-11-29 19:52:13 24 4
gpt4 key购买 nike

我正在 YouTube 上关注本教程,了解如何使用 json 格式从 mysql 数据库读取数据到 Android 应用程序。每当单击“获取 json”按钮时,应用程序都应显示数据库中表的 json 格式。我仔细地跟踪并检查了代码和 php 文件,但它不是在我的 TextView 上显示的表格的 json 格式,而是我不知道的东西的 html 代码。

这是我的 MainActivity.class

public class MainActivity extends AppCompatActivity {

String json_string ;



@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
}

public void getJSON(View view)

{

new BackgroundTask().execute();

}


class BackgroundTask extends AsyncTask<Void,Void,String>
{
String JSON_STRING;
String json_url;

@Override
protected void onPreExecute(){
super.onPreExecute();

json_url = "http://www.puc.gava.ph/get_data.php";
}

@Override
protected String doInBackground(Void... voids) {
try {
URL url = new URL(json_url);
HttpURLConnection httpURLConnection = (HttpURLConnection)url.openConnection();
InputStream inputStream = httpURLConnection.getInputStream();
BufferedReader bufferedReader = new BufferedReader(new InputStreamReader(inputStream));
StringBuilder stringBuilder = new StringBuilder();
while((JSON_STRING = bufferedReader.readLine())!=null)
{

stringBuilder.append(JSON_STRING+"\n");


}

bufferedReader.close();
inputStream.close();
httpURLConnection.disconnect();
return stringBuilder.toString().trim();

} catch (MalformedURLException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}

return null;
}

@Override
protected void onProgressUpdate(Void... values) {

super.onProgressUpdate(values);
}

@Override
protected void onPostExecute (String result){
TextView textView = (TextView)findViewById(R.id.textView);
textView.setText(result);
json_string=result;


}


}

}

我还没有完成解析,因为我想一步一步地完成。这是我的 get_data.php

<?php

$host= "localhost";
$user = "root";
$password ="";
$db = "accounts";

$sql = "select * from user_info";

$con = mysqli_connect($host,$user,$password,$db);

$result = mysqli_query($con,$sql);

$response = array();

while($row = mysqli_fetch_array($result))
{
array_push($response,array("username" => $row[0],"password" => $row[1],"email" => $row[2]));

}

echo json_encode(array("server_response"=>$response));

mysqli_close($con);

?>

我的 php 文件没问题,因为我测试了浏览器的链接,它显示了我的表的 json 格式。

这是我在 TextView 中收到的一些内容

<br/>
<b>Notice</b>:Undefined index:
HTTP_ACCEPT_LANGUAGE in <n>/var/www/ph/rd/functions.php<b>49</b></br/>
<html>
<head>
<link type="text/css"href=...........and so on.

感谢您的宝贵时间。

最佳答案

您可以在 java 代码中设置缺少的 header :

httpURLConnection.setRequestProperty("Accept-Language", "en-US");

浏览器为您设置此 header 。

关于php - 从MySQL数据库读取数据到android,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40791243/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com