• WebView的用法
    • 使用HttpURLConnection连接网络
    • 使用OkHttp工具连接网络

WebView的用法

用于展示一个网页,相当于一个嵌入式的浏览器。
添加权限

<uses-permission android:name="android.permission.INTERNET" />
package com.example.webviewtest;import android.support.v7.app.AppCompatActivity;import android.os.Bundle;import android.webkit.WebView;import android.webkit.WebViewClient;public class MainActivity extends AppCompatActivity {    @Override    protected void onCreate(Bundle savedInstanceState) {        super.onCreate(savedInstanceState);        setContentView(R.layout.activity_main);        //获取webview对象        WebView webView = (WebView) findViewById(R.id.web_view);        //设置允许执行js        webView.getSettings().setJavaScriptEnabled(true);        //这段代码的作用,在需要从一个网页跳转到另一个网页时,仍在当前webview打开,而不是打开系统浏览器        webView.setWebViewClient(new WebViewClient());        //传入网址        webView.loadUrl("http://www.baidu.com");    }}

使用HttpURLConnection连接网络

开启权限:

<uses-permission android:name="android.permission.INTERNET" />

例子:

    private void sendRequestWithHttpURLConnection() {        // 开启线程来发起网络请求        new Thread(new Runnable() {            @Override            public void run() {                HttpURLConnection connection = null;                BufferedReader reader = null;                try {                    URL url = new URL("http://www.baidu.com");                    connection = (HttpURLConnection) url.openConnection();                    //GET:表示从服务器端获取数据;POST:表示提交数据到服务器,下面是例子://                    connection.setRequestMethod("POST");//                    DataOutputStream out=new DataOutputStream(connection.getOutputStream());//                    out.writeBytes("username=admin&password=123456");                    connection.setRequestMethod("GET");                    connection.setConnectTimeout(8000);                    connection.setReadTimeout(8000);                    InputStream in = connection.getInputStream();                    // 下面对获取到的输入流进行读取                    reader = new BufferedReader(new InputStreamReader(in));                    StringBuilder response = new StringBuilder();                    String line;                    while ((line = reader.readLine()) != null) {                        response.append(line);                    }                    showResponse(response.toString());                } catch (Exception e) {                    e.printStackTrace();                } finally {                    if (reader != null) {                        try {                            reader.close();                        } catch (IOException e) {                            e.printStackTrace();                        }                    }                    if (connection != null) {                        //一定要关闭连接                        connection.disconnect();                    }                }            }        }).start();    }    private void showResponse(final String response) {        /**         * Android不允许在子线程中进行UI操作,         *     我们需要通过runOnUiThread()方法将线程切换到主线程,再更新UI元素。         */        runOnUiThread(new Runnable() {            @Override            public void run() {                // 在这里进行UI操作,将结果显示到界面上                responseText.setText(response);            }        });    }

使用OkHttp工具连接网络

添加依赖库,在app/build.gradle文件的dependencies库中添加:

compile ‘com.squareup.okhttp3:okhttp:3.4.1’

例子:

private void sendRequestWithOkHttp() {    new Thread(new Runnable() {        @Override        public void run() {            try {                //第一步,先创建OkHttpClient实例                OkHttpClient client = new OkHttpClient();                //第二步,创建RequestBody保存要发送的数据                RequestBody requestBody = new FormBody.Builder()                        .add("username","admin")                        .add("password","123456")                        .build();                //第三步,创建要发送的request                Request request = new Request.Builder()                        // 指定访问的服务器地址                        .url("http://www.baidu.com")                        //传入数据                        .post(requestBody)                        .build();                //第四部,发送请求并获取返回数据                Response response = client.newCall(request).execute();                //获取返回数据的内容                String responseData = response.body().string();            } catch (Exception e) {                e.printStackTrace();            }        }    }).start();}

更多相关文章

  1. Android(安卓)权限列表permission说明
  2. Android(安卓)RecyclerView更新删除单条数据
  3. content provider 深入解析
  4. Android(安卓)-- Camera源码简析,启动流程
  5. android 开启关闭wifi服务
  6. Android(安卓)SQLITE 操作工具类
  7. Android(安卓)使用MediaPlayer播放音乐
  8. android 学习笔记4——post请求+线程控制
  9. Android中的HandlerThread和IntentService

随机推荐

  1. 8.3定义方法的注意事项
  2. insert带来的TiDB集群性能瓶颈排障
  3. 01.OSI及TCP/IP模型
  4. 浅谈分布式锁
  5. Nginx核心知识100讲
  6. 统信UOS中普通用户忘记密码处理方法
  7. Go语言核心36讲
  8. 8.5方法重载的判断练习
  9. 8.4方法的重载
  10. HTML基础知识