安卓获得与职位网络请求的三种方式

  

我们的应用常常要联网取得网络上的数据,然后进行解析,必须要先取到数据之后才能进行下一步的业务。

  

故网络请求是常用的操作,下面我介绍常用的三种方式,

  
      <李>第一是比较原始的方法,使用HttpURLConnection,李   <李>第二是凌空框架,李   <李>第三是xutils3框架。   
  

<强> 1. httpurlconnection方法

  

这是基于网络通信HTTP协议的网络请求,其它两种框架也是基于HTTP协议的.北京协议是一款基于短连接的协议,每次交互完毕后连接断开,而HTTP请求又分为GET和POST两种方式,得到请求比较简单,只需要在网址后面用& # 63;拼接请求的资源路径,如百度图片输入动漫关键字的地址

      http://image.baidu.com/search/index& # 63; tn=baiduimage& ipn=r& ct=201326592, cl=2, lm=1,圣=1,fm=index& fr=,科幻小说=1,fmq=, pv=, ic=0,数控=1,z=, se=1, showtab=0, fb=0,宽度和高度=,面对=0,类型=2,ie=utf-8&词=% E5 % % A8%E6%BC % AB 8,      

可以看到指数?后面跟了很多,连接的项目,这个,就是代表了一个个搜索的条件,而最后一个词=% E5 % 8 % A8%E6%BC % AB又是什么意思呢

  

就是输入的两个字“动漫”,这就是utf - 8编码后的字节,中文一个字符会编成三个字节,这是用16进制表示了一个字节。

  

从中也可以看到得到请求的一个限制,那就是不能传递中文,也不适合大数据量的数据提交。

  

而邮报则就没这个限制,且安全性也比得到请求高,总结就是简单的网络请求用,比较复杂的要与服务器与交互的就用后请求。

  

接下来就是发送得到请求和帖子请求了。

  

<强>得到请求

     //1。URL   网址URL=new URL (http://image.baidu.com/search/index& # 63; tn=baiduimage& ipn=r& ct=201326592, cl=2, lm=1,圣=1,fm=index& fr=,科幻小说=1,fmq=, pv=, ic=0,数控=1,z=, se=1, showtab=0, fb=0,宽度=,身高=,面对=0,=2的类型,即=utf-8&词=% E5 % 8 % A8%E6%BC % AB”);//2。HttpURLConnection   HttpURLConnection康涅狄格州=(HttpURLConnection) url.openConnection ();//3。集(得到)   conn.setRequestMethod(“获得”);//4。getInputStream   InputStream是=conn.getInputStream ();//5。解析,获取responseText,这里用缓冲字符流   BufferedReader读者=new BufferedReader(新InputStreamReader(是));   StringBuilder某人=new StringBuilder ();   字符串行=零;   在((=reader.readLine行())!=null) {   sb.append(线);   }//获取响应文本   字符串responseText=sb.toString ();      

<强>文章请求

     //1。URL   网址URL=new URL (“http://image.baidu.com/search/index”);//2。HttpURLConnection   HttpURLConnection康涅狄格州=(HttpURLConnection) url.openConnection ();//3。帖子   conn.setRequestMethod(“文章”);//4。内容类型,这里是固定写法,发送内容的类型   conn.setRequestProperty(“内容类型”,“应用程序/x-www-form-urlencoded”);//5。输出,这里要记得开启输出流,将自己要添加的参数用这个输出流写进去,传给服务端,这是套接字的基本结构   conn.setDoOutput(真正的);   OutputStream os=conn.getOutputStream ();   字符串参数=" tn=baiduimage& ipn=r& ct=201326592, cl=2, lm=1,圣=1,fm=index& fr=,科幻小说=1,fmq=, pv=, ic=0,数控=1,z=, se=1, showtab=0, fb=0,宽度=,=高度,面对=0,类型=2,ie=utf-8&词=% E5 % 8 % A8%E6%BC % AB”;//一定要记得将自己的参数转换为字节,编码格式是utf - 8   os.write (param.getBytes (" utf - 8 "));   os.flush ();//6。是   InputStream是=conn.getInputStream ();//7。解析,获取responseText   BufferedReader读者=new BufferedReader(新InputStreamReader(是));   StringBuilder某人=new StringBuilder ();   字符串行=零;   在((=reader.readLine行())!=null) {   sb.append(线);   }//获取响应文本   字符串responseText=sb.toString ();      

<强> 2.凌空框架

  

<强>得到请求

     //1。创建RequestQueue,这是一个请求队列,相当于消息机制处理   私人RequestQueue mQueue=Volley.newRequestQueue(这个);//2。StringRequest   字符串url=" http://www.baidu.com ";   StringRequest点播=new StringRequest (url,   新的Listener () {//请求成功后回调在主线程中执行   公共空间>   私人RequestQueue mQueue;//后请求要用commonRequest请求实现   字符串url=" www.baidu.com ";=新CommonRequest (Request.Method CommonRequest请求。帖子、url、新Response.Listener () {   公共空间>//第一步,新建一个请求参数对象   RequestParams params=new RequestParams (" www.baidu.com& # 63; inm=2 ");//直接调用x.http () . get()方法,这里注意x是要用全局MyApplication中初始化后才可以使用,初始化方法为x.Ext.init(这)   x.http ()。get (params,新的Callback.CommonCallback

安卓获得与职位网络请求的三种方式