How to connect Android app to web server

后端 未结 4 488
野的像风
野的像风 2021-02-02 04:32

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

4条回答
  •  孤城傲影
    2021-02-02 05:13

    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 mapOfStrings) {
    
    Uri.Builder uriBuilder = new Uri.Builder();
    uriBuilder.encodedPath(url);
    if (mapOfStrings != null) {
        for (Map.Entry 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 request = new HashMap();
    request.put("username", username);
    request.put("password",password);
    
    sUrl = sUrl + "yourApiName";
    return get(ctx, buildSanitizedRequest(sUrl, request));
    }
    

提交回复
热议问题