在Android中,可以有多种方式来实现网络编程:

创建URL,并使用URLConnection/HttpURLConnection

使用HttpClient

使用WebView

创建URL,并使用URLConnection/HttpURLConnection

java.net.*下面提供了访问 HTTP 服务的基本功能。使用这部分接口的基本操作主要包括:

创建 URL 以及 URLConnection / HttpURLConnection 对象

1 设置连接参数

2 连接到服务器

3 向服务器写数据

4 从服务器读取数据

源码:

try {
        // 创建URL对象
        URL url = new URL("http://t.sina.cn/fesky");
        // 创建URL连接
        URLConnection connection = url.openConnection();
        // 对于 HTTP 连接可以直接转换成 HttpURLConnection,
        // 这样就可以使用一些 HTTP 连接特定的方法,如 setRequestMethod() 等
        // HttpURLConnection connection
        // =(HttpURLConnection)url.openConnection(Proxy_yours);
        // 设置参数  www.jb51.net
        connection.setConnectTimeout(10000);
        connection.addRequestProperty("User-Agent", "J2me/MIDP2.0");
        // 连接服务器
        connection.connect();

} catch (IOException e) {
        // TODO Auto-generated catch block
        e.printStackTrace();
    }
使用HttpClient
对于HttpClient类,可以使用HttpPost和HttpGet类以及HttpResponse来进行网络连接。

使用WebView

Android手机中内置了一款高性能webkit内核浏览器,在SDK中封装成了WebView组件。

1. webview的XML定义:

<WebView   
        android:id="@+id/webview"  
        android:layout_width="fill_parent"  
        android:layout_height="fill_parent"  
    />
2.Manifest文件中权限的设定:
<uses-permission android:name="android.permission.INTERNET" />
3.如果想要支持JavaScript:webview.getSettings().setJavaScriptEnabled(true);  
4.如果需要在WebView中显示网页,而不是在内置浏览器中浏览,则需要mWebView.setWebViewClient,并重写shouldOverrideUrlLoading方法。

5.如果不做任何处理,在显示你的Brower UI时,点击系统"Back"键,整个Browser会作为一个整体"Back"到其他Activity中,而不是希望的在Browser的历史页面中Back。如果希望实现在历史页面中Back,需要在当前Activity中处理Back事件:mWebView.goBack();

WebView webview;
    /** Called when the activity is first created. */
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);
        // 获取WebView对象
        webview = (WebView) findViewById(R.id.webview);  
        // 使能JavaScript
        webview.getSettings().setJavaScriptEnabled(true);  
        // 如果需要在WebView中显示网页,而不是在内置浏览器中浏览,
        // 则需要mWebView.setWebViewClient,并重写
        // shouldOverrideUrlLoading方法。
        webview.setWebViewClient(new WebViewClientDemo());
        // 加载网页
        webview.loadUrl("http://t.sina.cn/fesky");   
    }
    @Override
    public boolean onKeyDown(int keyCode, KeyEvent event) {
        // 按下BACK键回到历史页面中
        if ((keyCode == KeyEvent.KEYCODE_BACK) && webview.canGoBack()) {  
            webview.goBack();  
            return true;  
        }  
        return super.onKeyDown(keyCode, event);
    }
    private class WebViewClientDemo extends WebViewClient {  
        @Override  
        // 在WebView中而不是默认浏览器中显示页面
        public boolean shouldOverrideUrlLoading(WebView view, String url) {  
            view.loadUrl(url);  
            return true;  
        }  
    }
webview.loadData(html, "text/html", "utf-8");

如果html中包含中文,则需要webview.loadData(URLEncoder.encode(html,encoding), mimeType, encoding);

对于本地图片或网页的显示,可以使用loadUrl,不过Url的地址前缀为file:///,如"file:///android_asset/test.htm"。

WebView 的使用----android 网络连接处理分析的更多相关文章

  1. Android 网络连接判断与处理

    Android网络连接判断与处理  获取网络信息需要在AndroidManifest.xml文件中加入相应的权限. <uses-permission android:name="and ...

  2. Android网络连接判断与处理

    博客分类: Android 获取网络信息需要在AndroidManifest.xml文件中加入相应的权限. <uses-permission android:name="android ...

  3. android 网络连接判断

    Android 网络判断类,用来判断网络状态 使用方法: (1)先初始化 //初始化网络状态检测类 NetworkStateManager.instance().init(this); (2)判断是否 ...

  4. 怎样检查Android网络连接状态

    在发送任何HTTP请求前最好检查下网络连接状态,这样可以避免异常.这个教程将会介绍怎样在你的应用中检测网络连接状态. 创建新的项目 1.在Eclipse IDE中创建一个新的项目并把填入必须的信息.  ...

  5. Android 网络连接状态的监控

    有些应用需要连接网络,例如更新后台服务,刷新数据等,最通常的做法是定期联网,直接使用网上资源.缓存数据或执行一个下载任务来更新数据. 但是如果终端设备没有连接网络,或者网速较慢,就没必要执行这些任务. ...

  6. Android网络连接监听

    接收系统网络服务的广播接收者 public class NetStateReceiver extends BroadcastReceiver { private Handler handler; pu ...

  7. [Android Pro] 利用tcpdump和wireshark对android网络请求进行分析

    一: tcpdump操作流程 1. 手机要有root权限 2. 下载tcpdump   http://www.strazzere.com/android/tcpdump 3. adb push c:\ ...

  8. Android网络连接之HttpURLConnection和HttpClient

    1.概念   HTTP 协议可能是现在 Internet 上使用得最多.最重要的协议了,越来越多的 Java 应用程序需要直接通过 HTTP 协议来访问网络资源.在 JDK 的 java.net 包中 ...

  9. Android网络连接的两种方法:apache client和httpurlconnection的比较

    另见http://blog.csdn.net/mingli198611/article/details/8766585 在官方blog中,android工程师谈到了如何去选择apache client ...

随机推荐

  1. RabbitMQ 入门 Helloworld

    1.介绍 RabbitMQ 是信息传输的中间者.本质上,他从生产者(producers)接收消息,转发这些消息给消费者(consumers).换句话说,他能够按根据你指定的规则进行消息转发.缓冲.和持 ...

  2. linux和android博客链接

    1.Tracy Mcgrady的专栏冰山一角:linux和Android底层开发,主要是mtk系列点击打开链接 2.郁闷Wednesday:嵌入式linux 单片机 android,点击打开链接 3. ...

  3. javascript对象创建方式

    工厂模式 在ECMAscript中无法创建类,所以开发人员就发明了一种函数,用函数来封装,以特定接口创建对象的细节,如下面的例子所示: function createPerson(name,age,j ...

  4. SQL数据库中字段类型 与C#中的对应字段类型

    数据库中的字段类型和对应的C#中的对应字段类型 数据库                 C#程序int int32text stringbigint int64binary System.Byte[] ...

  5. 基于EasyUI的Web应用程序及过去一年的总结

    前言 在这家公司服务了一年时间,一个多月之前已经提交了离职申请,好在领导都已经批准了,过几天就办理手续了,在此感谢领导的栽培与挽留,感谢各位同事在工作中的给我的帮助,感谢师傅(在我心中当他是我师傅,跟 ...

  6. 《与小卡特一起学Python》Code1

    print "I love pizza!" print "pizza " * 20 print "yum " * 40 print &quo ...

  7. php 资源

    ThinkPHP http://www.thinkphp.cn/ 小案例 http://www.helloweba.com/php.html Github上的PHP资源汇总大全 http://www. ...

  8. git备份sublime插件及配置

    github备份sublime配置 sublime使用的时间长了,渐渐的就积累了一些有用甚至离不开的插件.但是有时候系统会出点问题,或者换电脑什么的,这时候要想在找回那个曾经的sublime就不那么容 ...

  9. pom.xml里有红叉报错的解决办法

    pom.xml里有红叉报错的解决办法一: 1.把鼠标点在报的错上发现pom.xml报如下错误: Multiple annotations found at this line: - Failure t ...

  10. mysql执行大量sql语句

    今天需要通过csv上传大量数据到数据库 直接逐行执行insert效率极其低下 后面通过拼接insert,稍微提高了些许效率,但依然不满足 最后发现,把这些插入放入同一个事务里面可以大大提高效率 beg ...