Android上使用HttpURLConnection发送HTTP请求

Android上使用HttpURLConnection发送HTTP请求


  • WebView 的引入
    WebView是一个Android早有的控件,它能在应用程序里嵌入一个浏览器,实现网页展示.

WebView已经在后台帮我们处理好发送HTTP请求,接受服务器响应,解析返回数据
先用一个小demo实现一下:

MainActivity:

        setContentView(R.layout.activity_main);
        wv=(WebView)findViewById(R.id.webView1);
        //使WebView支持JS脚本
        wv.getSettings().setJavaScriptEnabled(true);
        wv.setWebViewClient(new WebViewClient(){
            @Override
            public boolean shouldOverrideUrlLoading(WebView view, String url){
                //加载网页
                view.loadUrl(url);
                return true;
            }           
        });
        wv.loadUrl("http://www.baidu.com");

这里写图片描述


HttpURLConnection

尽管WebView已经封装了解析网页的大部分流程,我们通过另一个例子,HttpURLConnection来获取网页源码并进行解析

在activity_main中定义webveiw,设置全屏

  1. 在AndroidManifest.xml声明访问网络的权限 (uses-permissionAndroidStdi;name=”android.permission.INTERNET”)

  2. 定义一个URL对象对要解析的网站(String)进行解析
    URL httpUrl=new URL(url)

  3. 通过URL对象获取连接
    HttpURLConnection conn= (HttpURLConnection) httpUrl.openConnection();
    设置属性:
    //获取时间
    conn.setReadTimeout(5000);
    //请求方式
    conn.setRequestMethod(“GET”);

  4. 对conn的输入流进行读取转成StringBuffer

final StringBuffer sb = new StringBuffer();
                BufferedReader reader = new BufferedReader(new InputStreamReader(conn.getInputStream()));
                String str;             
                while ((str=reader.readLine())!=null) {
                    sb.append(str);         
                }
  1. handler新线程中对StringBuffer进行解析
 handler.post(new Runnable() {

                    @Override
                    public void run() {
                        webView.loadDataWithBaseURL(url,sb.toString(),"text/html","utf-8",null);
                    }
                });

  • 结果:
    这里写图片描述

参考代码: 第一行代码, 慕课网

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值