2024-10-31 16:46

Andriod项目访问服务器--JavaEE

码自答

JavaEE

(84)

(0)

收藏

Android项目通过URL访问WEB服务器

获得WEB服务器发送的相关数据

在Android项目中间使用

  • 打开Android项目使用手机网络的权限

    image.png

  • 设置Android项目明码获得数据

    为了数据安全,Google在新的Android版本要求不能用明码和WEB服务器传递数据,需要对数据加密

    否则会提示以下错误

    ClearText http traffic to ... not permitted

    image.png

  • 写新线程连接网络

    由于连接网络需要消耗时间,在新的Android程序中间,不能在主线程中间连接网络

    需要写新的线程连接网络,例如通过AsyncTask线程连接网络

    继承AsyncTask类重写doInBackground方法

    image.png

    代码:


  • package com.wanmait.test;
    
    import android.app.NotificationManager;
    import android.content.Intent;
    import android.net.Uri;
    import android.os.AsyncTask;
    import android.provider.Settings;
    import android.widget.TextView;
    
    import java.io.BufferedReader;
    import java.io.IOException;
    import java.io.InputStream;
    import java.io.InputStreamReader;
    import java.net.HttpURLConnection;
    import java.net.URL;
    
    public class WebpageTask extends AsyncTask<String, Void, String> {
    
        @Override
        protected String doInBackground(String... urlStrings) {
            HttpURLConnection connection = null;
            BufferedReader reader = null;
            StringBuilder response = new StringBuilder();
            try {
    
                URL url = new URL(urlStrings[0]);
                connection = (HttpURLConnection) url.openConnection();
                connection.setRequestMethod("GET");
                connection.connect();
    
                int code = connection.getResponseCode();
    
    
                InputStream inputStream = connection.getInputStream();
                reader = new BufferedReader(new InputStreamReader(inputStream));
    
                String line;
    
                while ((line = reader.readLine()) != null) {
                    response.append(line);
                }
                return response.toString();
            } catch (Exception e) {
                e.printStackTrace();
            } finally {
                if (connection != null) {
                    connection.disconnect();
                }
                if (reader != null) {
                    try {
                        reader.close();
                    } catch (IOException e) {
                        e.printStackTrace();
                    }
                }
            }
        }
    }
  • 启动线程,访问WEB服务器

    image.png


0条评论

点击登录参与评论