




已阅读5页,还剩3页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
Android - 网络编程 Google以网络搜索引擎起家的,在网络通信方面也非常优秀,我们可以很轻松地使用Android自带的浏览器来访问网页。Android基于Linux内核,它包含一组优秀的联网功能。目前,Android平台有3种网络接口可以使用,它们分别是:.*(标准Java接口),org.apache(Apache接口),.*(Android 网络接口)。标准java接口J.*(标准java接口)提供与联网有关的类,包括流和数据包套接字,Internet协议,常见HTTP协议处理。比如:创建URL以及URLConnection/HttpURLConnection对象,设置连接参数,连接到服务器,向服务器谢数据,从服务器读取数据等通信。源码:try / 创建URL对象URL url = new URL(/);/ 创建URL连接URLConnection connection = url.openConnection();/ 对于 HTTP 连接可以直接转换成 HttpURLConnection,/ 这样就可以使用一些 HTTP 连接特定的方法,如 setRequestMethod() 等/ HttpURLConnection connection/ =(HttpURLConnection)url.openConnection(Proxy_yours);/ 设置参数connection.setConnectTimeout(10000);/ 连接服务器connection.connect();/ 取得数据InputStream is = connection.getInputStream();/ 处理数据 catch (IOException e) / TODO Auto-generated catch blocke.printStackTrace();每一次HttpURLConnection连接的状态,可以用HttpURLConnection.getResponseCode取得目前的网络连接的服务器应答代码,或以HttpURLConnection.getResponseMessage取得返回的信息。常出现的代码与信息的对应如下:ResponseCodeResponseMessage说明200OK成功401Unauthorized未授权500Internal Server Error服务器内部错误404Not Found找不到该网页也可以运用HttpURLConnection类中的getInputStream方法,返回InputStream,可以将InputStream对象,变成Bitmap,显示到画面上。Apache接口HTTP协议可能是现在Internet上使用最多,最重要的通信协议了,越来越多的Java应用程序通过HTTP协议来访问网络资源。Android平台引入了ApacheHttpClient的同时还提供了对它的一些封装和扩展,例如设置缺省的HTTP超时和缓存大小等。HttpClient 是 Apache Jakarta Common 下的子项目,可以用来提供高效的、最新的、功能丰富的支持 HTTP 协议的客户端编程工具包,并且它支持 HTTP 协议最新的版本和建议。Android平台用的版本是HttpClient4.0。对于HttpClient类,可以使用HttpPost和HttpGet类以及HttpResponse来进行网络连接。源码:第1种:post方式HttpPost httpRequest = new HttpPost(uriAPI);try / 发出HTTP request httpRequest.setEntity(new UrlEncodedFormEntity(params, HTTP.UTF_8); /*取得HTTP response*/ HttpResponse httpResponse = new DefaultHttpClient().execute(httpRequest); /*若状态码200 ok*/ if(httpResponse.getStatusLine().getStatusCode() = 200) /*取出应答字符串*/ String strResult = EntityUtils.toString(httpResponse.getEntity(); mTextView1.setText(strResult); else mTextView1.setText(ErrorResponse:+httpResponse.getStatusLine().toString(); catch (ClientProtocolException e) mTextView1.setText(e.getMessage().toString(); e.printStackTrace(); 第2种:get方式HttpGet httpRequest = new HttpGet(uriAPI); try /* 发出HTTP request*/ HttpResponse httpResponse = new DefaultHttpClient().execute(httpRequest); /*若状态码为200 ok*/ if(httpResponse.getStatusLine().getStatusCode() = 200) /*取出应答字符串*/ String strResult = EntityUtils.toString(httpResponse.getEntity(); mTextView1.setText(strResult); else mTextView1.setText(Error Response: +httpResponse.getStatusLine().toString(); catch (ClientProtocolException e) mTextView1.setText(e.getMessage().toString(); e.printStackTrace(); Android网络接口A.*包实际上是通过对Apache中HttpClient的封装来实现的一个HTTP编程接口,同时还提供了HTTP请求队列管理以及HTTP连接池管理,以提高并发请求情况下(如转载网页时)的处理效率,除此之外还有网络状态监视等接口,网络访问的Socket,常用的Uri类以及有关WiFi相关的类等等。源码:/ IP 地址InetAddress inetAddress = InetAddress.getByname(“10”);/ 端口Socket client = new Socket(inetAddress,61203,true);/ 取得数据InputStream in = client.getInputStream();OutputStream out = client.getOutputStream();/ 处理数据out.close();in.close();client.close();使用WebViewAndroid手机中内置了一款高性能webkit内核浏览器,WebKit由3个模块组成:JavaScriptCore,WebCore和WebKit。在SDK中封装成了WebView组件,可以让自己开发的程序也能拥有浏览器的功能。/guide/tutorials/views/hello-webview.html提供了一个简单的例子: 1.webview的XML定义: 2.Manifest文件中权限的设定: 3.在Android中专门通过WebSettings来设置WebView的一些属性,状态等。在创建WebView时,系统有一个默认的设置,我们可以通过WebView.getSettings来得到这个设置。代码如下:/取得mWebView的WebSettings对象WebSettings webSettings = mWebView.getSettings();4.如果想要支持JavaScript: webview.getSettings().setJavaScriptEnabled(true); 5.WebViewClient就是专门辅助WebView处理各种通知,请求等事件的类。我们可以通过WebView的setWebViewClient方法来指定一个WebViewClient对象。如果需要在WebView中显示网页,而不是在内置浏览器中浏览,则需要mWebView.setWebViewClient,并重写shouldOverrideUrlLoading方法。6.Android中提供了一个重要的类WebChromeClient,专门用来辅助WebView处理Javascript的对话框,网站图标,网站Title,加载进度等。7.如果不做任何处理,在显示你的Brower UI时,点击系统“Back”键,整个Browser会作为一个整体“Back到其他Activity中,而不是希望的在Browser的历史页面中Back。如果希望实现在历史页面中Back,需要在当前Activity中处理Back事件:mWebView.goBack(),同样可以处理Forward事件:mWebView.goForward()。WebView webview;/* Called when the activity is first created. */Overridepublic void onCreate(Bundle savedInstanceState) super.onCreate(savedInstanceState);setContentView(R.layout.main);/ 获取WebView对象webview = (WebView) findViewById(R.id.webview);/ 使能JavaScriptwebview.getSettings().setJavaScriptEnabled(true);/ 如果需要在WebView中显示网页,而不是在内置浏览器中浏览,/ 则需要mWebView.setWebViewClient,并重写/ shouldOverrideUrlLoading方法。webview.setWebViewClient(new WebViewClientDemo();/ 加载网页webview.loadUrl(/fesky);Overridepublic 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;以上是采用loadUrl方法实现网页的加载,也可以采用loadData或者loadDataWithBaseURL方法实现网页的加载: webview.loadData(html, “text/html”, utf-8”);loadData()方法中的3个参数,分别如下:HTML TAG,MIME类型,网页编码。使用该方法,可以自行设置WebView要显示的网页内容,例如:mWebView1. loadData( Subscribe to my
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 碳足迹优化的物流路径规划-洞察及研究
- 智能客服技术应用-第1篇-洞察及研究
- 访问控制系统的实时监控-洞察及研究
- 广电网络切片的智能运维研究-洞察及研究
- 白金纳米颗粒的尺寸效应与分散性-洞察及研究
- 纳米颜料检测技术-洞察及研究
- 线上线下教学资源整合-洞察及研究
- 民族医院绩效考核体系-洞察及研究
- 营林机械作业风险防控-洞察及研究
- 四川省仁寿县2026届七年级数学第一学期期末教学质量检测试题含解析
- 成人反流误吸高危人群全身麻醉管理专家共识(2025版)解读 3
- 淀粉加工工培训考核试卷及答案
- 网站推广代理服务合同5篇
- 2025中数联物流科技(上海)有限公司招聘考试参考试题及答案解析
- JSQ5A夹绳器说明书
- 儿童牙外伤处理方法课件
- 《生态毒理学》课件
- DB14T 2740-2023 春玉米膜侧沟播技术规程
- 福特汽车NVH开发流程
- 中国农业银行笔试题库(含答案)
- 《发现雕塑之美》第2课时《凝神造像-中国传统雕塑》
评论
0/150
提交评论