我在cpanel上创建了一个数据库,然后我选择了一个名字并传递给它。 所以我在services.php中声明了“database”,“password”,“user name”,“localhost”。
Services.php:
<?php
if (isset($_REQUEST['action'])){
$foo = $_REQUEST['action'];
}else{
echo "Invalid Data";
exit;
}
/*************************************************/
function connectToDatabase()
{
$servername ="localhost";
$username = "us_utab";
$password = "sk3%CkvH";
$dbname = "us_utab";
// Create connection
$conn = new mysqli($servername, $username, $password, $dbname);
$conn->set_charset("utf8");
// Check connection
if ($conn->connect_error) {
die("Connection failed: " . $conn->connect_error);
}
return $conn;
}
/*************************************************/
if ($foo == 'search')
{ search(); }
if ($foo == 'read')
{ read();}
if ($foo == 'insert')
{ insert();}
.
.
.
我改变了我的Android代码。
HttpPost method = new HttpPost("http://192.168.1.2/test-website/services.php?action=read");
致:
HttpPost method = new HttpPost("https://utab.com:2083/services.php?
action=read");
这是对的吗?
在android地方不需要使用数据库名称,密码,用户名吗?
它没有连接到服务器。所以我删除了端口2083,我在下面遇到错误:
javax.net.ssl.SSLPeerUnverifiedException: No peer certificate
答案 0 :(得分:0)
那么你的代码似乎是正确的,在这种情况下不是问题。
在android的地方不需要使用数据库名称,密码,用户名吗?
如果PHP文件已包含这些值,请不要这样做。
我们看到的实际错误是SSLPeerUnverifiedException
,这意味着https://utab.com
证书存在一些问题。所以你需要检查一下。还要检查设备的日期,是否正确?
答案 1 :(得分:0)
javax.net.ssl.SSLPeerUnverifiedException: No peer certificate
这意味着您正在尝试与不希望安全连接的http服务器建立安全的https连接。
$servername ="localhost";
$username = "us_utab";
$password = "sk3%CkvH";
$dbname = "us_utab";
这是services.php的唯一内容吗?如果是,则它缺少连接到数据库的所有代码,从http请求获取参数,可能进行一些数据库查询并返回一些响应。似乎只有一个论点是action=read
,它不清楚它必须回应什么。
<强>更新强>
阅读完评论后,如果服务器可以从同一台计算机访问而不能从另一台计算机访问,那么就会出现IP路由问题,而不是编程问题。服务器上的计算机可能存在阻止传入连接的防火墙,或者其网络接口配置错误。
另外考虑到局域网内部无法从LAN计算机访问路由器连接到WAN的公共IP。要在局域网内进行测试,您必须使用专用LAN IP,例如192.168.1.2,而不是&#34; utab.com&#34;