2016-12-09 24 views
2

私のシニアデザインプロジェクトのAndroidアプリケーションの設計に取り組んでいます。アプリケーションは、Webサーバーに接続できる必要があります。 Webサーバーは、パーソナルコンピュータ上のローカルにホストされたApache Webサーバーです。アプリケーションは、携帯電話/アプリケーションに暫定的なソフトウェアアップデートをダウンロードする必要があります。AndroidアプリをWebサーバーに接続する方法

この時点で、私はログインページとホームページを構築しました。私が抱えている問題は、アプリケーションからWebサーバーに接続する方法です。私の教授はまた、ログインページから、適切なユーザー名とパスワードが入力されていれば、これらの資格情報もWebサーバーにアクセスするように要求しています。私もこれが可能かどうか質問しています。どんなアドバイスも大いに受け取ります。

ありがとうございます - この質問にはさらに詳しい情報が必要な場合や回答が不十分な場合は教えてください。あなたはREST APIをしたい場合は、ハイブリッドアプリケーションは、あなたがここで参照することができますしたい場合は

+3

、のようになります。アプリケーション " - HTTPクライアントAPI(' HttpUrlConnection'、OkHttp、Volleyなど)を使用します。 「適切なユーザー名とパスワードが入力されている場合は、これらの資格情報もWebサーバーにアクセスします」 - WebサービスAPIを設定して、Webページで使用しているのと同じ資格情報を使用します。 HTTPクライアントAPIでこれらの資格情報を使用します。 – CommonsWare

答えて

3

アンドロイドとリモートサーバーとの接続は非常に面白いです。非常に不安です。以下のリンクは、あなたのニーズを最大限に引き出すのに役立ちます。

Android Connect with Php Mysql

Android Connection using servlets

そして、あなたはHttpURLConnectionのを使ってAndroidデバイスからサーバーに接続したい場合は、以下のコードに従ってください。

private static JSONObject get(Context ctx, String sUrl) { 
HttpURLConnection connection = null; 

try { 

    URL url = new URL(sUrl); 
    connection = (HttpURLConnection) url.openConnection(); 
    connection.setRequestProperty("Content-Type", "application/json"); 
    connection.setRequestProperty("Accept", "application/json"); 
    connection.setRequestProperty("Authorization", 
      "Basic " + encodedAuthentication); 
    connection.setRequestProperty("Accept-Charset", "utf-8,*"); 
    Log.d("Get-Request", url.toString()); 
    try { 
     BufferedReader bufferedReader = new BufferedReader(
       new InputStreamReader(connection.getInputStream())); 
     StringBuilder stringBuilder = new StringBuilder(); 
     String line; 
     while ((line = bufferedReader.readLine()) != null) { 
      stringBuilder.append(line).append("\n"); 
     } 
     bufferedReader.close(); 
     Log.d("Get-Response", stringBuilder.toString()); 
     return new JSONObject(stringBuilder.toString()); 
    } finally { 
     connection.disconnect(); 
    } 
} catch (Exception e) { 
    Log.e("ERROR", e.getMessage(), e); 
    return null; 
} 
} 

プライベート静的な文字列buildSanitizedRequest(文字列のURL、 地図mapOfStrings){

Uri.Builder uriBuilder = new Uri.Builder(); 
uriBuilder.encodedPath(url); 
if (mapOfStrings != null) { 
    for (Map.Entry<String, String> entry : mapOfStrings.entrySet()) { 
     Log.d("buildSanitizedRequest", "key: " + entry.getKey() 
       + " value: " + entry.getValue()); 
     uriBuilder.appendQueryParameter(entry.getKey(), 
       entry.getValue()); 
    } 
} 
String uriString; 
try { 
    uriString = uriBuilder.build().toString(); // May throw an 
    // UnsupportedOperationException 
} catch (Exception e) { 
    Log.e("Exception", "Exception" + e); 
} 

return uriBuilder.build().toString(); 

} 

とJSON一部を呼び出してからWebサーバへの接続方法」

public static JSONObject exampleGetMethod(Context ctx, String sUrl, String username, String password) throws JSONException, IOException { 
Map<String, String> request = new HashMap<String, String>(); 
request.put("username", username); 
request.put("password",password); 

sUrl = sUrl + "yourApiName"; 
return get(ctx, buildSanitizedRequest(sUrl, request)); 
} 
+0

ありがとう!これは多くの助けになりました! –

関連する問題