我正在构建一个 Android 应用程序,它借助存储在 Apache 服务器上的 PHP API 连接到远程数据库。
这是计划的方式:
(1) 用户在应用程序上单击登录 (2) 应用程序在 Web 服务器上调用 login.php (3) login.php 然后检查 phpmyadmin SQL 服务器(特定数据库和表以获取用户详细信息)
现在,我有一个问题!
我正在使用学术型大学服务器
通常大学允许我使用以下格式访问任何文件:
例如, http://doc.gold.ac.uk/~m00982/test.html
这里 ~m00982 代表我大学知道的学生 ID。
回到我原来的问题。虽然我可以通过网络浏览器直接访问我的 php 文件。但是我以这样的方式编写了我的 Java:
CustomHTTP 客户端首先检查 URL 地址是否正常且可访问。
我收到 CustomHTTPClient FALSE 错误,因为它无法建立与 doc.gold.ac.uk 的连接,因为服务器拒绝访问。我知道这一点,因为大学服务器会要求输入用户名和密码才能连接。
我该如何解决这个问题???
如果我使用私人网络服务器(例如,我在 Go Daddy 上购买了网络托管)并将我的文件和文件夹存储在那里,它可以完美运行,并且 CustomHTTPClient TRUE 在这种情况下。
我需要使用大学服务器,因为我的 SQL 数据库存储在本地,我需要运行我的应用程序。
有什么建议么?
My CustomHTTPClient.Java snippet is here:
public static boolean isAddressOk(String link){
boolean isOK = false;
try {
URL url = new URL(link);
HttpURLConnection urlCon = (HttpURLConnection)url.openConnection();
urlCon.connect();
if(urlCon.getResponseCode() == 200) {
isOK = true;
Log.i(DEBUG, "TRUE");
}else{
isOK = false;
Log.i(DEBUG, "FALSE");
}
urlCon.disconnect();
} catch (MalformedURLException e1) {
isOK = false;
Log.e(DEBUG, "FALSE");
e1.printStackTrace();
} catch (IOException e) {
isOK = false;
Log.e(DEBUG, "FALSE");
e.printStackTrace();
}
return isOK;
}
}
和参数在这里定义:
// the URL for IGOR Web Server where PHP Scripts are located
public static final String LINK_ROOT = "http://doc.gold.ac.uk";
// the link to login API on IGOR Server
public static final String LINK_LOGIN = LINK_ROOT + "/~ma00982/android/login.php";