Android学习-网络技术-使用HTTP协议进行网络交互、HttpURLConnection与OkHttp、XML与JSON的解析、使用java回调机制将服务器响应的数据进行返回

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

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

评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值