码迷,mamicode.com
首页 > 移动开发 > 详细

Android--HttpUrlConnetion

时间:2015-12-08 21:57:26      阅读:286      评论:0      收藏:0      [点我收藏+]

标签:

 任何网络连接都需要经过socket才能连接,HttpURLConnection不需要设置socket,所以,HttpURLConnection并不是底层的连接,而是在底层连接上的一个请求这就是为什么HttpURLConneciton只是一个抽象类自身不能被实例化的原因。HttpURLConnection只能通过URL.openConnection()方法创建具体的实例。

HttpClient  是一个接口, 用DefaultHttpClient(); 来创建实例化.

虽然底层的网络连接可以被多个HttpURLConnection实例共享,但每一个HttpURLConnection实例只能发送一个请求。请求结束之后,应该调用HttpURLConnection实例的InputStream或OutputStream的close()方法以释放请求的网络资源,不过这种方式对于持久化连接没用。对于持久化连接,得用disconnect()方法关闭底层连接的socket。

 

 

httpUrlConnection.setRequestMethod("POST");   //设置请求方式
httpUrlConnection.connect();           //连接,不用可以用getINputStream代替

 

   //发送请求参数
    OutputStream outputStream = conn.getOutputStream();
    outputStream.write(entity);

 

 

// 设定传送的内容类型是可序列化的java对象 (如果不设此项,在传送序列化对象时,当WEB服务默认的不是这种类型时可能抛java.io.EOFException) 
httpUrlConnection.setRequestProperty("Content-type", "application/x-java-serialized-object"); 

 

设置连接参数的方法

setAllowUserInteraction   
setDoInput           //设置是否从httpUrlCOnnection读入,默认情况是true
setDoOutput          //设置是否向httpUrlConnection输入,post请求中,参数在http正文中,因此要设置为true,默认情况下是false
setIfModifiedSince 
setUseCaches          //设置是否缓存  post请求不能缓存
setDefaultAllowUserInteraction   
setDefaultUseCaches

 

 

设置请求头参数
HTTP请求允许一个key带多个用逗号分开的values

setRequestProperty("Charsert","UTF-8");      //会覆盖已经存在的key的所有values
addRequestProperty(key,value)            //在原来key的基础上继续添加其他value。

setRequestProperty和addRequestProperty的区别就是,setRequestProperty,有清零重新赋值的作用。而addRequestProperty则是发送URL请求

getOutputStream   //用于post 请求中,把请求参数传递给服务器

 

获取响应

getContent         请求成功后,可以获取响应中的数据
getHeaderField          标红用的最多
getInputStream   

获取响应头信息头

getContentEncoding
getContentLength
getContentType
getDate
getExpiration
getLastModifed

 

Android--HttpUrlConnetion

标签:

原文地址:http://www.cnblogs.com/zrui513/p/5030927.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!