Android网络应用开发,主要有两种方式,一种是socket(是对tcp/udp协议的封装),另外一种就是使用Http协议,Android中主要提供了两种方式,HttpURLConnection和Apache HttpClient。下面对Android网络应用开发进行具体的阐述。
一、基于socket的网络通信
socket是为了网络服务提供的一种机制。通信的两端都是socket。
网络通信其实就是socket间的通信。
数据在两个socket间进行io传输。
1、基于udp的socket编程步骤
定义码头
即:定义一个DatagramSocket对象ds
定义可以用来接收或者发送数据的集装箱
即:定义DatagramPacket对象dp
在码头上用集装箱接受对象发送过来的数据(ds.receive(dp))
关闭码头(ds.close())
2、基于tcp的socket编程步骤
二、基于http协议的网络通信
1、HttpURLConnection
JDK 的 java.net 包中已经提供了访问 HTTP 协议的基本功能:HttpURLConnection。HttpURLConnection是java的标准类,HttpURLConnection继承自URLConnection,可用于向指定网站发送GET请求、POST请求。
下面是一个使用HttpURLConnection类的get请求访问网络的工具类:
path是url字符串 * InputStream */ InputStream (String path) { URL url = ; { url = URL(path); HttpURLConnection conn = (HttpURLConnection) url.openConnection(); conn.setRequestMethod(); conn.setConnectTimeout(); conn.setDoInput(); (conn.getResponseCode() == ) { InputStream in = conn.getInputStream(); in; } } (MalformedURLException e) { e.printStackTrace(); } (IOException e) { e.printStackTrace(); } ; }
2、Apache HttpClient
HTTP 协议可能是现在 Internet 上使用得最多、最重要的协议了,越来越多的 Java 应用程序需要直接通过 HTTP 协议来访问网络资源。虽然在 JDK 的 java net包中已经提供了访问 HTTP 协议的基本功能,但是对于大部分应用程序来说,JDK 库本身提供的功能还不够丰富和灵活。HttpClient 是 Apache Jakarta Common 下的子项目,用来提供高效的、最新的、功能丰富的支持 HTTP 协议的客户端编程工具包,并且它支持 HTTP 协议最新的版本和建议。
httpClient就是一个增强版的HttpURLConnection,HttpURLConnection可以做的事情HttpClient全部可以做;HttpURLConnection没有提供的有些功能,HttpClient也提供了,但它只是关注于如何发送请求、接收响应,以及管理HTTP连接。
下面是使用httpClient get方式访问网络的工具类:
stream * */ [] (InputStream stream) IOException{ [] ret = ; ByteArrayOutputStream bout = ByteArrayOutputStream(); [] buf = []; len; () { len = stream.read(buf); (len == -) { ; } bout.write(buf, , len); } buf = ; ret = bout.toByteArray(); bout.close(); ret; } url 网址 * */ [] (String url) { [] ret = ; HttpGet request = HttpGet(url); HttpClient client = DefaultHttpClient(); { HttpResponse response = client.execute(request); StatusLine statusLine = response.getStatusLine(); statusCode = statusLine.getStatusCode(); (statusCode == ) { HttpEntity entity = response.getEntity(); InputStream stream = entity.getContent(); ret = readStream(stream); stream.close(); } } (IOException e) { e.printStackTrace(); } ret; }
以上是小编为您精心准备的的内容,在的博客、问答、公众号、人物、课程等栏目也有的相关内容,欢迎继续使用右上角搜索按钮进行搜索httpclient
, 协议
, httpurlconnection
, android网络
, httpget请求
, android http协议
, inputstream
, stream
, httpentity
, android网络请求
, android开发网络
, socket通信android
, android socket数据网络
协议socket通信android
android应用开发详解、android网络应用开发、android项目开发详解、android游戏开发详解、android 邮箱开发详解,以便于您获取更多的相关知识。