Apache サーバーに格納されている PHP API を使用して、リモート DB に接続する Android アプリを構築しています。
計画方法は次のとおりです。
(1) ユーザーがアプリでログインをクリックします (2) アプリが Web サーバー上の login.php を呼び出します (3) login.php が phpmyadmin SQL サーバーをチェックします (特定のデータベースとユーザー詳細のテーブル)
今、私は問題を抱えています!!
大学のサーバーを使用しています
通常、大学では、次の形式を使用して任意のファイルにアクセスできます。
たとえば、 http://doc.gold.ac.uk/~m00982/test.html
ここで ~m00982 は、大学に知られている私の学生 ID を表します。
元の問題に戻ります。Webブラウザから直接phpファイルにアクセスできます。しかし、次のような方法で Java をコーディングしました。
CustomHTTP クライアントは、最初に URL アドレスが正常でアクセス可能かどうかをチェックします。
サーバーによってアクセスが拒否されたため、doc.gold.ac.uk への接続を確立できないため、CustomHTTPClient FALSE としてエラーが発生します。大学のサーバーが接続するためにユーザー名とパスワードを要求するため、私はこれを認識しています。
どうすればこの問題を解決できますか???
プライベート Web サーバーを使用し (たとえば、Go Daddy で Web ホスティングを購入しました)、そこにファイルとフォルダーを保存すると、完全に機能し、その場合 CustomHTTPClient は TRUE になります。
アプリを実行する必要があるSQLデータベースがローカルに保存されているため、University Serverを使用する必要があります。
助言がありますか?
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";