Android使用http协议访问网络.docx

上传人:A*** 文档编号:142725212 上传时间:2020-08-22 格式:DOCX 页数:6 大小:31.41KB
返回 下载 相关 举报
Android使用http协议访问网络.docx_第1页
第1页 / 共6页
Android使用http协议访问网络.docx_第2页
第2页 / 共6页
Android使用http协议访问网络.docx_第3页
第3页 / 共6页
Android使用http协议访问网络.docx_第4页
第4页 / 共6页
Android使用http协议访问网络.docx_第5页
第5页 / 共6页
点击查看更多>>
资源描述

《Android使用http协议访问网络.docx》由会员分享,可在线阅读,更多相关《Android使用http协议访问网络.docx(6页珍藏版)》请在金锄头文库上搜索。

1、Android使用http协议访问网络今天主要介绍两种方式来通过http协议访问网络。第一种是使用httpurlconnection,第二种是使用开源框架okhttp来访问网络,这次只是介绍简单的使用,适合新手入门学习,后续会增加HttpURLConnection和OkHttp使用的深入学习。添加网络权限因为我们需要访问网络,所以要添加访问网络的权限。代码如下 使用HttpURLConnection访问网络1.首先需要获取到HttpURLConnection的实例,那么如何获取呢?这里有个一般的方法就是我们可以先创建一个URL,然后传入网络地址,紧接着调用url的openConnection(

2、)方法就行了,我们看下代码怎么操作: URL url = new URL(https:/); HttpURLConnection connection = (HttpURLConnection) url.openConnection();在此介绍一下关于http请求所使用的方法,一般有两种方法即post和get,其实很好理解,get表示要从服务器那里获取数据,而post则代表要把数据提交给服务器,我们这里以获取服务器数据为例。2.设置http请求的方式以及设置连接超时等信息/自由定制 connection.setRequestMethod(GET); connection.setConnect

3、Timeout(80000); connection.setReadTimeout(8000);3.使用getInputStream获取服务器返回的输入流 InputStream stresm = connection.getInputStream();4.在得到服务器返回的输入流之后我们就要对输入流进行读取了,在这里我们使用BufferedReader对输入流进行读取,主要的读取流程如下: /对返回的输入流进行读取BufferedReader reader = new BufferedReader(new InputStreamReader(stresm);5.对输入流读取完毕之后我们就开始

4、读取存放在reader当中的字符串了,这时我们可以通过调用BufferedReader的readLine()方法去除字符串,看具体的代码实现如下: StringBuilder response = new StringBuilder(); String line; while (line=reader.readLine() != null) response.append(line); 我们将读取到的字符流全部存放在了response当中,接下来将其通过toString()方法进行转换就可以在textview当中进行显示了。注意:执行网络操作是一件比较耗时的操作,所以我们应该开启一个新的线程去

5、单独执行耗时的网络操作,接下来我们开启一个新的线程去执行上述操作,完整代码如下: public void openBaidu(View v) new Thread(new Runnable() Override public void run() HttpURLConnection connection = null; BufferedReader reader = null; /第一步建立httpurlconnection实例 try URL url = new URL(https:/); connection = (HttpURLConnection) url.openConnection

6、(); /自由定制 connection.setRequestMethod(GET); connection.setConnectTimeout(80000); connection.setReadTimeout(8000); /使用getInputStream获取服务器返回的输入流 InputStream stresm = connection.getInputStream(); /对返回的输入流进行读取 reader = new BufferedReader(new InputStreamReader(stresm); StringBuilder response = new String

7、Builder(); String line; while (line=reader.readLine() != null) response.append(line); showData(response.toString(); catch (java.io.IOException e) e.printStackTrace(); finally if (reader!=null) try reader.close(); catch (IOException e) e.printStackTrace(); if (connection != null) connection.disconnec

8、t(); ).start(); private void showData(final String s) runOnUiThread(new Runnable() Override public void run() mTextView.setText(s); if (s = null) System.out.println(this); else System.out.println(不是); ); 在以上代码中我们发现设置文本的时候我们新建了一个showData方法去设置文本,同时在方法中使用了runOnUiThread()方法去执行设置文本的操作,这是为什么呢?因为在子线程中是不允许操

9、作ui线程的,所以我们要刷新ui控件的话就必须在主线程中进行,通过runOnUiThread我们可以将线程从子线程切换到主线程,这样就可以进行文本的设置了。以上就是通过HttpURLConnection访问网络的操作了,使用httpurlconnection是比较原始的操作,在如今开源盛行的时代,有许多出色的网络通信库可以替代原生的HttpURLConnection,我们这里推荐OkHttp,你一定听说过它的大名,它已经是Android开发首选的网络通信库了,下面我们就来先简单的认识并且使用一下这个强大的网络通信库把!使用OkHttp在使用OkHttp之前,我们首先需要在项目中添加OkHttp

10、的库依赖,需要在app/build.gradle文件中的dependencies闭包当中添加如下依赖。compile com.squareup.okhttp3:okhttp:3.9.0添加如上依赖之后就可以使用OkHttp了,你可以在类中输入ok,如果你as开启了代码自动提示功能的话就会出现关于OkHttp的各种类了,这就代表我们集成OkHttp成功了。其实OkHttp的基础使用还是很简单的,下面我们来说一下它的简单使用。第一:需要首先创建一个OkHttpClient实例。 /使用OkHttp OkHttpClient client = new OkHttpClient();我们可以跟http

11、urlconnection对比一下,这里不需要先创建一个url对象,那么我们该怎么创建url呢?毕竟我们是要访问网络的,其实OkHttp是需要创建一个Request对象来执行相关操作的。第二:创建一个Request对象 Request request = new Request.Builder() .url(https:/) .build();以上添加了一个url,接下来我们就可以获取服务器的数据了,那么该如何获取服务器的数据呢?其实只需要一行代码第三:获取服务器返回的数据 Response response = client.newCall(request).execute(); /此处response就是服务器返回的数据当获取到服务器的数据之后我们应该对数据进行处理,得到可以设置在textview当中的数据,这里不需要多么复杂的实现逻辑,同样是一行代码 String data = response.body().string();好了,如此一来我们就得到了我们想要的数据了,总体来说使用OkHttp非常的方便,因为它真的很强大。接下来我们看下完整的代码mOpenBaidu.

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > IT计算机/网络 > 其它相关文档

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号