android网络技术-使用 HTTP协议访问网络
http的工作原理十分简单,就是客户端祥服务器发送一条http请求,服务器收到请求之后会返回一些数据给客户端,然后客户端对这些数据进行解析和处理就可以了,正如webview控件的原理就是一个很好的例子,我们向百度的服务器发起一条http请求,接着服务器分析出我们想要访问的百度首页,于是会把该网页的html代码进行返回,然后webview在手机浏览器的内核对返回的html代码进行解析,最终将页面展示出来。简单的说,webview已经在后台棒我们处理好了发送http请求,接收服务响应,解析返回数据,以及最终的牙面展示这几步。
接下来我们进行手动发送http请求的方式,进一步深入理解这个过程。
在安卓上发送http请求的方式一般有两种:HttpURLConnection和HttpClient,下面我们来学习一些HttpURLConnection的用法。
首先需要获取HttpURLConnection的实例,一般只需要new出一个 URL对象,并传入目标的网络地址,然后调用一下openConnection()方法即可。
URL url-new URL("https://www.baidu.com"); HttpURLConnection connection=(HttpURLConnection)url.openConnection();
得到了HttpURLConnection 的实例之后,就可以设置一下HTTP请求数据所使用的方法。常用的方法主要有两个,GET和POST,GET表示希望从服务器那里获取的数据,而post则表示将数据提交给服务器。写法如下:
connextion.setRequestMethod("GET")
接下来就可以进行一些自由的定制了,比如设置连接超时,读取超时的毫秒数,以及服务器希望得到的一些消息头。这部分内容需要根据实际情况进行编写。
connection.setConnectTimerout(8000); connection.setReadTimesout(8000);
之后调用getInputStream()方法就可以获取到服务器返回的输入流,剩下的任务就是对数据流进行读取了。
inputstram in=connection,getInputStream();
最后可以调用disconnect()方法将这个http连接关闭。
connection.disconnect();