Android中最常使用到的网络技术:在手机端使用HTTP写一和服务器端进行网络交互,并对服务器返回的数据进行解析。
WebView
可以在自己的应用程序里嵌入一个浏览器,来展示网页。
例子:


首先使用findViewById方法获取到了WebView的实例,然后调用WebView的getSettings方法可以去设置一些浏览器的属性,这里只调用了setJavaScriptEnabled方法来让WebView支持javascript脚本。
接下来调用了WebView的setwebviewclient方法,并传入了一个webviewclient实例。这段代码的作用是,当需要从一个网页跳转到另一个网页时,我们希望目标网页仍然在当前webview中显示,而不是打开系统浏览器
最后一步就是调用webview的loadurl方法将网址传入。
注意,程序使用到了网络功能,而访问网络时需要声明权限的,因此需要修改AndroidManifest.xml文件,并加入声明权限。

使用HTTP协议访问网络
HTTP协议的工作原理:
客户端向服务器发送一条HTTP请求,服务器收到请求之后会返回一些数据给客户端,然后客户端在对这些数据进行解析和处理就可以了。一个浏览器的基本工作原理也就是如此了。
比如webview控件,其实也就是我们向百度的服务器发起了一条HTTP请求,接着服务器分析出我们想要访问的时百度的首页,于是会把该网页的HTML代码进行返回,然后webview再调用手机浏览器的内核对返回的HTML代码进行解析,最终将页面展示出来。
简单来说,webview已经在后台帮我们处理好了发送HTTP请求、接收服务响应、解析返回数据,以及最终页面的展示这几步工作,不过由于它封装的太好了,反而使得我们不能那么直观的看出HTTP写一到底是如何工作的。接下来使用手动发送HTTP请求方式来学习。
使用HttpURLConnection
首先需要获取到HttpURLConnection的实例,一般只需要new出一个URL对象,并传入目标的网络地址,然后调用一下openConnection方法即可。

得到实例后,可以设置一下HTTP请求所使用的方法。常用的方法主要有两个:GET和POST。GET表示希望从服务器那里获取数据,而post则表示希望提交数据给服务器。

接下来可以进行一些自由的定制,比如设置连接超时、读取超时的毫秒数,以及服务器希望得到的一些消息头等。

之后再调用getInputStream方法获取到服务器返回的输入流,剩下的任务就是对输入流进行读取。

最后可以调用disconnect方法将这个HTTP连接关闭

具体实例:


这里使用了一个新控件ScrollView。由于手机屏幕的空间一般都比较小,有时候过多的内容一屏是显示不下的,借助ScrollView控件的,我们就可以以滚动形式查看屏幕外的那部分内容。另外,布局中还放置了一个Button和一个TextView,Button用于发送HTTP请求,TextView用于将服务器返回的数据显示出来。、
接着修改MainActivity中的代码,如下:


首先在send request按钮的点击事件中调用了sendr

本文探讨了Android中如何通过WebView与HTTP交互,展示了使用HttpURLConnection、OkHttp发送GET和POST请求,以及解析XML和JSON数据的过程。还介绍了网络编程的最佳实践,包括回调机制和使用OkHttp简化操作。
最低0.47元/天 解锁文章
498

被折叠的 条评论
为什么被折叠?



