Android使用Http协议访问网络

Http协议工作原理大致可以理解为:客户端向服务器发出一条HTTP请求,服务器收到请求后返回一些数据给客户端,客户端对收到数据解析。

在Android6.0以前,Android上发送Http请求主要有两种方式:HttpURLConnection和HttpClient。其中HttpClient存在过多的API且难扩展,于是在Android6.0系统中,HttpClient被完全移除,如需使用,需导入相应文件。这里介绍最近我最近学习的HttpURLConnection的基本使用方法,然后接下来介绍一种当下比较流行的网络通信库Okhttp。

Android获取网络数据主要有get和post方法,get表示从服务器获取数据,Post表示提交数据给服务器。

1.首先新建一个HttpURLConnectionDemo文件,添加两个按钮,分别表示使用get方法与post方法。

2.为按钮添加点击事件,分别执行doGet与doPost方法。

  • Get请求

注意,这里的方法必须在子线程中执行,否则运行时会报android.os.NetworkOnMainThreadException错误,表示不能在主线程中执行网络请求。

  • Post请求

当然,最重要的一点,在访问网络之前,需要申明网络权限,修改AndroidManifest.xml中的代码,

之后运行代码,就可以得到相应数据。

可以看出使用HttpURLConnection比较繁琐,我们可以使用当前流行的OkHttp网络通信库代替它。Okhttp是由大名鼎鼎的Square公司开发,简单易用。初学者可以通过HttpURLConnection了解其网络访问流程,但在实际项目开发过程中,使用比较多的是Okhttp,Okhttp的项目主页地址是:http://github.com/square/okhttp.

1. 在使用Okhttp之前,需要在项目中添加依赖项,通过访问Okhttp项目主页地址查找当前Okhttp的最新版本号。

2.然后点击右上角的,完成同步。新建项目,这里在前面HttpURLConnextionDemo基础上修改。

3.在HttpURLConnextionDemo基础上申明一个OkHttpClient,

4.分别使用两种请求获取数据,其中get请求使用同步请求方法,post请求使用的是异步请求回调的方法。

  • get请求

  • post请求

时间: 2024-10-12 16:29:23

Android使用Http协议访问网络的相关文章

Android使用Http协议访问网络——HttpConnection

套路篇 使用HttpConnection访问网络一般有如下的套路: 1.获取到HttpConnection的实例,new出一个URL对象,并传入目标的网址,然后调用一下openConnection()方法. 1 HttpURLConnection connection=null; 2 URL url=new URL("http://www.baidu.com"); 3 connection=(HttpURLConnection)url.openConnection(); 2.得到了Ht

Android使用HTTP协议访问网络——HttpClient

套路篇 1.HttpClient是一个接口,因此无法创建它的实例,通常情况下都会创建一个DefaultHttpClient的实例 HttpClient httpClient=new DefaultHttpClient(); 2.如果想要发起一条GET请求,就创建一个HttpGet对象,并传入目标网络的对象,然后调用HtttpClient中的excute()方法: HttpGet httpGet=new HttpGet("http://www.baidu.com"); HttpRespo

Android主线程不能访问网络异常解决办法

从两个方面说下这个问题: 1. 不让访问网络的原因 2. 解决该问题的办法 不让访问网络的原因: 由于对于网络状况的不可预见性,很有可能在网络访问的时候造成阻塞,那么这样一来我们的主线程UI线程 就会出现假死的现象,产生很不好的用户体验.所以,默认的情况下如果直接在主线程中访问就报出了这个异常,名字是NetworkOnMainThreadException 解决该问题的办法 1. 独立线程 2. 异步线程AsyncTask 3. StrictMode修改默认的策略 1) 独立线程的办法 启动一个

Android中使用http协议访问网络

HTTP协议的工作原理:客户端向服务器端发送http请求,服务器端收到请求后返回一下数据给客户端,客户端接受消息并进行解析. 在Android中发送http请求的方式有两种,第一种是通过HttpURLConnection的方式,第二种是通过HttpClient的方式. 通过HttpURLConnection的方式发送http请求 通常分为以下5个步骤: 1.获取HttpURLConnection实例对象.先new一个URL实例,然后调用该对象的openConnection()方法. 2.设置ht

android学习二十(使用HTTP协议访问网络)

使用HttpURLConnection 在Android上发送HTTP请求的方式一般有两种,HttpURLConnection和HttpClient,现在先学习下 HttpURLConnection的用法. 首先需要获取到HttpURLConnection的实例,一般只需new 出一个URL对象,并传入目标网络的地址,然后 调用一下openConnection()方法即可,如下所示: URL URL=new URL("http://www.baidu.com"); HttpURLCon

Android客户端添加代理访问网络

因为公司的网络必须要通过代理才能访问外网, 给开发带了极大的不便.总共有两种一中是使用java自带的HttpURLConnection还有一种是使用Android平台中已经继承了的HttpClient [1].[代码] 使用HttpClient添加代理 跳至 [1] [2] ? 1 2 3 4 5 6 7 8 9 10 11 12 13 private HttpClient client = null;     private String url = PropertiesUtil.getUrl

安卓使用 HTTP 协议访问网络

10.2.1 使用 HttpURLConnection 1,首先需要获取到 HttpURLConnection 的实例,一般只需 new 出一个 URL 对象,并传入目标的网络地址,然后调用一下 openConnection()方法. 2,我们可以设置一下 HTTP 请求所使用的方法.常用的方法主要有两个, GET 和 POST. GET 表示希望从服务器那里获取数据,而 POST 则表示希望提交数据给服务器. 3,接下来就可以进行一些自由的定制了,比如设置连接超时.读取超时的毫秒数,以及服务器

使用HTTP协议访问网络

有两种方法分别是 HttpURLConnection 和HttpClient 使用HttpURLConnection xml界面代码: <span style="font-size:14px;"><LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools"

Android基础之十七使用网络技术

Android基础之十七使用网络技术 本章主要会讲述如何在手机端使用HTTP协议和服务器端进行网络交互,并对服务器返回的数据进行解析,这也是Android中最常使用到的网络技术了,下面就让我们一起来学习一下吧. 1 WebView的用法 借助它我们就可以在自己的应用程序里嵌入一个浏览器,从而非常轻松地展示各种各样的网页 WebView的用法也是相当简单,下面我们就通过一个例子来学习一下吧.新建一个WebViewTest项目,然后修改activity_main.xml中的代码,如下所示 <Line