Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

How to connect Android app to web server

Tags:

java

android

I am working on designing an Android application for my senior design project. The application will need to be able to connect to a web server. The web server is just a locally hosted Apache web server on a personal computer. The application will need to download a makeshift software update to the phone/application.

At this point in the design, I have the login page and home page built. The problem I am having is how to connect to a web server from the app. My professor has also requested that from the login page, if the proper username and password have been entered, that these credentials will also access the web server. I am also questioning if this is even possible. Any advice will be greatly received.

Thanks - Please let me know if this question needs more info or is not clear enough to answer.

like image 789
Trapper Davis Avatar asked Dec 09 '16 01:12

Trapper Davis


People also ask

How do I connect an app to the server?

Go to Settings > Secure Configuration > AppServer Database Connection. Type the computer name that hosts the SQL Server. Type the name of the database.

Do mobile apps use Web servers?

Apps usually store their data locally on mobile devices, unlike websites that generally use web servers.


2 Answers

It's very interesting to do the connections of the android to the remote server, very anxiety. Below link will help you max for your need.

Android Connect with Php Mysql

Android Connection using servlets

And If you wanna connect the server from the android device by using HttpUrlConnection then follow the below code.

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;
}
}

private static String buildSanitizedRequest(String url,
                                        Map<String, String> 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();

}

And Json calling part should look like,

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));
}
like image 138
Bethan Avatar answered Oct 12 '22 23:10

Bethan


I think this is use for you

As per my experience, we have lot of API calling library are available, it is free

here is a tutorial showing how to create and deploy connection.

Loopj

Retrofit

Volley

okhttp

Thanks..

like image 34
Umesh AHIR Avatar answered Oct 13 '22 01:10

Umesh AHIR