</pre>首先,我们都知道现在Android网络编程只需要利用AfinalHTTP框架很简单的就可以实现。但是我还是想把Android原生的网络编程总结一下,毕竟万变不离其宗。</h3><h3>声明:本人初学,只是写出了知其然却没有知其所以然(即本人也不是太了解具体的实现原理,只是会用。大神们可以绕了。。)</h3><h3>一,前提:注意对网络的访问不可以在主线程中(耗时,以免阻塞)可以利用AsyncTask,即异步处理机制。亦或Handler+Thread机制进行线程之间的通信。</h3><h3><span style="font-size:12px">二,其实也可以利严苛模式(只需要几句简单的代码),就可以在UI线程进行网络的访问了,不过不推荐这种。</span></h3><h3>好了,进入主题。</h3><h3>Android中的网络编程,我把它分为两类,一类是Scoket编程,一类HTTP编程。Scoket编程我是自学,在此不多讲。说一下HTTP编程</h3><h3>HTTP是超文本传输协议的缩写,用来传输超文本数据。Android提供了HttpURLConnection和HttpClient两个接口开发访问程序的接口。</h3><h3><span style="color:#ff0000">1:这种方式通过URL</span></h3><h3><span style="color:#ff0000">HttpURLConnection继承URLConnection类,两个都是抽象类,无法背直接实例化。通过URL中的openConnection方法获得实例</span></h3><div><pre name="code" class="html" style="font-size: 14px; font-weight: bold;">1)创建一个URL对象
</pre>首先,我们都知道现在Android网络编程只需要利用AfinalHTTP框架很简单的就可以实现。但是我还是想把Android原生的网络编程总结一下,毕竟万变不离其宗。</h3><h3>声明:本人初学,只是写出了知其然却没有知其所以然(即本人也不是太了解具体的实现原理,只是会用。大神们可以绕了。。)</h3><h3>一,前提:注意对网络的访问不可以在主线程中(耗时,以免阻塞)可以利用AsyncTask,即异步处理机制。亦或Handler+Thread机制进行线程之间的通信。</h3><h3><span style="font-size:12px">二,其实也可以利严苛模式(只需要几句简单的代码),就可以在UI线程进行网络的访问了,不过不推荐这种。</span></h3><h3>好了,进入主题。</h3><h3>Android中的网络编程,我把它分为两类,一类是Scoket编程,一类HTTP编程。Scoket编程我是自学,在此不多讲。说一下HTTP编程</h3><h3>HTTP是超文本传输协议的缩写,用来传输超文本数据。Android提供了HttpURLConnection和HttpClient两个接口开发访问程序的接口。</h3><h3><span style="color:#ff0000">1:这种方式通过URL</span></h3><h3><span style="color:#ff0000">HttpURLConnection继承URLConnection类,两个都是抽象类,无法背直接实例化。通过URL中的openConnection方法获得实例</span></h3><div><pre name="code" class="html" style="font-size: 14px; font-weight: bold;">1)创建一个URL对象
URL url = new URL(http://www.baidu.com); //URL可以为一个Servlet地址。
2)利用HttpURLConnection对象从网络中获取网页数据
HttpURLConnection conn = (HttpURLConnection) url.openConnection();
3)设置连接超时
conn.setConnectTimeout(6*1000);
4)对响应码进行判断
if (conn.getResponseCode() != 200) //从Internet获取网页,发送请求,将网页以流的形式读回来
throw new RuntimeException("请求url失败");
5)得到网络返回的输入流
InputStream is = conn.getInputStream();
6)把输入流转化为字节数组
byte data[]=take(is) //我写了一个名字叫take方法,用来把流转化为数组,很简单,略 有空我会来完善的
7)吧数组转化为字符串
String b=new String(data);
此时,b就是服务器端给你传送的东西。已经完毕,你如果想要传送对象信息,可以利用Gson解析。
2:这种方式通过HttpClient,值得一提在Android网络编程中,这种更适合,他有Get 以及Post两种方法(post可以传文件到服务器,但是一般情况我用Get)
Get方式:
1)HttpClient client=new DefaultHttpClient(); //DefaultHttpClient帮助我们创建一个HttpClient
2)HttpGet get=new HttpGet(
http://www.baidu.com);//你的Servlet地址,你可以带一些参数过去,比如 "
http://www.baidu.com"+username;
3)HttpResponse response=client.execute(get);
4) if(response.getStatusLine().getStatusCode(0==200) { //响应 Ok
5) HttpEntity entity=response.getEntity; //响应数据的内容
6)String msg=EntityUtils.toString(entity,"utf-8");
此时,msg就是服务器端给你传送的东西。已经完毕,你如果想要传送对象信息,可以利用Gson解析。