gpt4 book ai didi

php - 从mysql数据库拉取数据之前确保wamp服务器在线 -Android

转载 作者:行者123 更新时间:2023-11-29 13:15:00 30 4
gpt4 key购买 nike

在从mysql数据库获取数据之前,我需要确保wamp服务器在线,如果没有,应用程序会告诉用户在提取数据之前将其在线,这在android中如何实现?就好像它是离线的android应用程序停止了!

连接数据库的 PHP 代码是:

<?php

//receive datatbase Info. from android app
$json=$_SERVER['HTTP_JSON'];
var_dump($data);
$data=json_decode($json);
$dbname=$data->dbname;
$dbpass=$data->dbpass;
$link=mysql_connect("localhost","root",$dbpass);

if (!$link) {
echo "error";
die(mysql_error());
}

$db_selected=mysql_select_db($dbname,$link);

if (!$db_selected) {
die ('error'. mysql_error());
}

mysql_query("set names 'utf8'");
mysql_query("set CHARACTER set 'utf8'",$link);
mb_internal_encoding("UTF-8");

?>

但是在andorid应用程序中,当没有连接时(我的意思是当wamp服务器离线时),它不会收到“错误”?

总而言之,在从数据库拉取数据之前,是否有任何方法可以确保 wamp 服务器在线?如果没有给用户消息。

带着疲惫的心情我尝试了但没有结果,真的任何帮助将不胜感激!

最佳答案

您的问题的可能解决方案之一是为 wamp 服务器地址创建 Http 请求,这可以在 Android 中轻松完成。以下代码向您展示了如何为您需要的任何 URL 创建 http 请求。

Thread thread = new Thread(new Runnable(){
@Override
public void run() {
try {
try {
URL url = new URL("http://220.13.81.33");

HttpURLConnection urlc = (HttpURLConnection) url.openConnection();
urlc.setConnectTimeout(1000 * 5); // mTimeout is in seconds
urlc.connect();

if (urlc.getResponseCode() == 301) {


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

}
} catch (Exception e) {
e.printStackTrace();
}
}
});

thread.start();

很明显,您只需将所需的 IP 或 URL 放入 URL 构造函数中,但您必须注意两个重要注意事项:

1-要发出请求,您需要通过使用线程或创建异步任务来完成,或者,如果您不想使用线程,您可以强制 android 在主进程中处理此类请求android 通过在代码中添加以下策略。但这种方案需要SDK版本9以上。

StrictMode.ThreadPolicy policy = new StrictMode.ThreadPolicy.Builder().permitAll().build();
StrictMode.setThreadPolicy(policy);

2-如果您正在使用模拟器并且想要连接本地主机,则必须使用此地址 http://10.0.2.2:8080 因为它是本地主机地址适用于 Android。

一旦发出connect函数,就会返回一个响应代码,否则会出现异常。响应代码的解释可以在此链接中找到 http://en.wikipedia.org/wiki/List_of_HTTP_status_codes ,请注意,如果返回的响应代码是 301,这意味着所使用的内容将被重定向到给定的 URI,这表明 Wamp 服务器在线。对于出现的异常,很可能是Wamp服务器离线。因此,您需要针对不同的场景进行多次测试并查看输出。

希望您一切顺利。

关于php - 从mysql数据库拉取数据之前确保wamp服务器在线 -Android,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21587139/

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