在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. R画图中英文字体完美解决方案

    在某些时候,需要在R画图中添加中文,但是默认情况下,R对中文的支持不好. 当用R画PDF图,并且图中有中文的时候,安装并加载如下包library(showtext)然后:showtext.auto(e ...

  2. mysql中常用的控制流函数

    MySQL有4个函数是用来进行条件操作的,这些函数可以实现SQL的条件逻辑,允许开发者将一些应用程序业务逻辑转换到数据库后台. MySQL控制流函数: CASE WHEN[test1] THEN [r ...

  3. 3.密码pasuwado————记第一次超越Candy?

    激动人心的2016.11.4模拟赛结束了 更激动人心的是我得了90分,第一次超越豪哥,特立文纪念. 3.密码 [问题描述] 哪里有压迫,哪里就有反抗. moreD的宠物在法庭的帮助下终于反抗了.作为一 ...

  4. Linux帮助命令

    帮助命令:man man 命令 获取命令的帮助 如下: [root@localhost ~]# man ls LS(1) User Commands LS(1) NAME ls - list dire ...

  5. TFS二次开发系列:二、TFS的安装

    本系列的实例将采用TFS 2012+Sql Server2012编写. TFS的完整版本安装最好是在Windows server2008 64位以上版本中,其包括64位的SQL SERVER 2012 ...

  6. 如何正确使用$_SERVER['DOCUMENT_ROOT']识别该路径的文件

    echo $_SERVER['DOCUMENT_ROOT']; 这时输出当前文件所在的路径 D:/phpStudy/WWW/study/php&mysql $_SERVER['DOCUMENT ...

  7. js去除数组重复项

    /** * js去除数组重复项 */ //方法一.使用正则法 // reg.test(str),匹配得到就返回true,匹配不到返回false var arr = ["345",& ...

  8. Unity学习笔记

    『 知识点』 [射线] 射线检测碰撞 『游戏实战』 个例 [E]<愤怒的小鸟> 资源 免费Unity基础教程(中文电子书) [E] noobtus(Unity游戏教程)

  9. svn 版本控制

    首先来下载和搭建SVN服务器. Subversion已经迁移到apache网站上了,下载地址: http://subversion.apache.org/packages.html windows操作 ...

  10. Laravel RuntimeException inEncrypter.php line 43: The only supported ciphers are AES-128-CBC and AES-256-CBC with the correct key lengths

    php artisan key:generate 运行上面代码即可解决