Android网络通信的实现方式

Android网络编程分为两种:基于http协议的,和基于socket的。
基于Http协议:HttpClient、HttpURLConnection、AsyncHttpClient框架等
基于Socket:
(1)针对TCP/IP的Socket、ServerSocket
(2)针对UDP/IP的DatagramSocket、DatagramPackage
(3)Apache Mina框架
一、HttpURLConnection的实现方式

String response = null; Url url = new URL(path); HttpURLConnection connection = (HttpURLConnection) url.openConnection(); // 新建连接实例 connection.setConnectTimeout(20000);// 设置连接超时时间,单位毫秒 //connection.setReadTimeout(20000);// 设置读取数据超时时间,单位毫秒 connection.setDoInput(true);// 是否打开输入流 true|false connection.setRequestMethod("POST");// 提交方法POST|GET //connection.setUseCaches(false);// 是否缓存true|false //connection.setRequestProperty("accept", "*/*"); //connection.setRequestProperty("Connection", "Keep-Alive"); //connection.setRequestProperty("Charset", "UTF-8"); //connection.setRequestProperty("Content-Length", String.valueOf(data.length)); //connection.setRequestProperty("Content-Type", "application/x-www-form-urlencoded"); connection.connect();// 打开连接端口 int responseCode = conn.getResponseCode(); BufferedReader reader = null; if (responseCode == 200) { reader = new BufferedReader(new InputStreamReader(connection.getInputStream(), "utf-8")); StringBuffer buffer = new StringBuffer(); String line = ""; while ((line = reader.readLine()) != null) { buffer.append(line); } response = buffer.toString(); } else { response = "返回码:"+responseCode; } reader.close(); conn.disconnect();

二、HttpClient实现方式

HttpResponse mHttpResponse = null; HttpEntity mHttpEntity = null; //创建HttpPost对象 //HttpPost httppost = new HttpPost(path); //设置httpPost请求参数 //httppost.setEntity(new UrlEncodedFormEntity(params,HTTP.UTF_8)); HttpGet httpGet = new HttpGet(path); HttpClient httpClient = new DefaultHttpClient(); InputStream inputStream = null; BufferedReader bufReader = null; String result = ""; // 发送请求并获得响应对象 mHttpResponse = httpClient.execute(httpGet);//如果是“POST”方式就传httppost if (mHttpResponse.getStatusLine().getStatusCode() == HttpStatus.SC_OK) { // 获得响应的消息实体 mHttpEntity = mHttpResponse.getEntity(); // 获取一个输入流 inputStream = mHttpEntity.getContent(); bufReader = new BufferedReader(new InputStreamReader(inputStream)); String line = ""; while (null != (line = bufReader.readLine())) { result += line; } //result = EntityUtils.toString(mHttpResponse.getEntity()); } if (inputStream != null) { inputStream.close(); } bufReader.close(); if (httpClient != null) { httpClient.getConnectionManager().shutdown(); }

三、实用AsyncHttpClient框架的实现方式

AsyncHttpClient client = new AsyncHttpClient(); client.get(url, new AsyncHttpResponseHandler() { @Override public void onSuccess(int i, Header[] headers, byte[] bytes) { String response = new String(bytes, 0, bytes.length, "UTF-8"); } @Override public void onFailure(int i, Header[] headers, byte[] bytes, Throwable throwable) { } });

四、使用WebView视图组件显示网页

myWebView.getSettings().setJavaScriptEnabled(true); myWebView.setWebViewClient(new WebViewClient() { @Override public boolean shouldOverrideUrlLoading(WebView view, String url) { view.loadUrl(url); return true; } }); myWebView.loadUrl("http://"+networkAddress);

以上就是Android中网络通信几种方式的全部内容,希望对大家的学习有所帮助。

时间: 2024-09-19 03:14:49

Android网络通信的实现方式的相关文章

Android网络通信的实现方式_Android

Android网络编程分为两种:基于http协议的,和基于socket的.基于Http协议:HttpClient.HttpURLConnection.AsyncHttpClient框架等基于Socket: (1)针对TCP/IP的Socket.ServerSocket (2)针对UDP/IP的DatagramSocket.DatagramPackage (3)Apache Mina框架一.HttpURLConnection的实现方式 String response = null; Url url

android源码下载方式

android源码下载方式: 方式一: 1) 创建~/bin $ mkdir ~/bin$ PATH=~/bin:$PATH 2) 下载repo $ curl https://dl-ssl.google.com/dl/googlesource/git-repo/repo > ~/bin/repo$ chmod a+x ~/bin/repo 3) 创建保存Android源码文件 $ mkdir WORKING_DIRECTORY$ cd WORKING_DIRECTORY 4 ) 下载Androi

android http POST请求方式向服务其发送数据不成功 贴出代码求大神帮解决一下

问题描述 android http POST请求方式向服务其发送数据不成功 贴出代码求大神帮解决一下 new Thread(new Runnable() { @Override public void run() { String szSrc = ""abcdefghijkl123456789123"" ; byte[] encoded = ThreeDes.encryptMode(keyBytes szSrc.getBytes()); try { /* Strin

详解Android四种存储方式_Android

在Android程序开发中我们经常遇到四种数据存储方式,每种存储方式都各有不同:以下我分别列举了Android开发中的不同存储方式的特点 一,Preferences Preferences是一个较轻量级的存储数据的方法,具体使用方法: 在A中保存值: SharedPreferences.Editor sharedata = getSharedPreferences("data", 0).edit(); sharedata.putString("name","

Android ListView最佳处理方式,ListView拖动防重复数据显示,单击响应子控件

Android ListView最佳处理方式,ListView拖动防重复数据显示,单击响应子控件. 1.为了防止拖动ListView时,在列表末尾重复数据显示.需要加入 HashMap<Integer,View> lmap = new HashMap<Integer,View>();其中Integer为列表位置,View为子项视图,加入数据前首先if (lmap.get(position)==null) ,满足条件时,加入lmap.put(position, convertView

android 网络机制-Android 网络通信机制

问题描述 Android 网络通信机制 android 从服务器下载文件有哪几种?都有什么区别?具体能有代码加解释, 解决方案 第一种: java.net.* (标准java接口) try{ URL url = new URL("http://www.google.com%22)//定义地址 HttpURLConnection http = (HttpURLConnection) url.openConnection();//打开连接 int nRC = http.getResponseCode

Android平台基于Pull方式对XML文件解析与写入方法详解_Android

本文详细讲述了Android平台基于Pull方式对XML文件解析与写入方法.分享给大家供大家参考,具体如下: XML技术在跨平台的情况下的数据交互中得到了广泛的应用,假如我们需要开发一个Android应用程序,需要同服务器端进行数据交互,通过XML文件可以很方便的在Android平台和服务器之间进行数据传输,具体实现涉及到对XML文件进行解析及写入的技术.本文实现在Android平台上基于Pull方式对XML文件解析的技术. XmlPullParser是一个Java实现的开源API包(源码下载地

实例详解Android文件存储数据方式_Android

总体的来讲,数据存储方式有三种:一个是文件,一个是数据库,另一个则是网络.下面通过本文给大家介绍Android文件存储数据方式. 1.文件存储数据使用了Java中的IO操作来进行文件的保存和读取,只不过Android在Context类中封装好了输入流和输出流的获取方法. 创建的存储文件保存在/data/data/<package name>/files文件夹下. 2.操作. 保存文件内容:通过Context.openFileOutput获取输出流,参数分别为文件名和存储模式. 读取文件内容:通

Android平台基于Pull方式对XML文件解析与写入方法详解

本文详细讲述了Android平台基于Pull方式对XML文件解析与写入方法.分享给大家供大家参考,具体如下: XML技术在跨平台的情况下的数据交互中得到了广泛的应用,假如我们需要开发一个Android应用程序,需要同服务器端进行数据交互,通过XML文件可以很方便的在Android平台和服务器之间进行数据传输,具体实现涉及到对XML文件进行解析及写入的技术.本文实现在Android平台上基于Pull方式对XML文件解析的技术. XmlPullParser是一个Java实现的开源API包(源码下载地