Android HttpURLConnection对象使用

  
1.从Internet获取网页

  发送请求,将网页以流的形式读回来.

Java代码:
  1. 1)创建一个URL对象:URL url = newURL("http://www.eoeandroid.com");

  2. 2)利用HttpURLConnection对象从网络中获取网页数据:HttpURLConnection conn =(HttpURLConnection) url.openConnection();

  3. 3)设置连接超时:conn.setConnectTimeout(6* 1000);

  4. 4)对响应码进行判断:if (conn.getResponseCode() != 200) throw newRuntimeException("请求url失败");

  5. 5)得到网络返回的输入流:InputStream is = conn.getInputStream();

  6. 6)String result = readData(is, "GBK");

  7. conn.disconnect();

复制代码

 
        2.从Internet获取文件

  利用 HttpURLConnection对象,我们可以从网络中获取文件数据.

Java代码:

  1. 1)创建URL对象,并将文件路径传入:URL url = newURL(http://www.eoeandroid.com/Img269812337.jpg);


  2. 2)创建HttpURLConnection对象,从网络中获取文件数据:HttpURLConnection conn =(HttpURLConnection) url.openConnection();


  3. 3)设置连接超时:conn.setConnectTimeout(6* 1000);


  4. 4)对响应码进行判断:if (conn.getResponseCode() != 200) throw newRuntimeException("请求url失败");


  5. 5)得到网络返回的输入流:InputStream is = conn.getInputStream();
  6.  
  7. 6)将得到的文件流写出:outStream.write(buffer, 0, len);
复制代码

总结:
  --在对大文件的操作时,要将文件写到 SDCard上面,不要直接写到手机内存上.
  --操作大文件是,要一遍从网络上读,一遍要往 SDCard上面写,减少手机内存的使用.这点很重要,面试经常会被问到.
  --对文件流操作完,要记得及时关闭.

        3.向Internet发送请求参数

Java代码:


  1. 1)将地址和参数存到byte数组中:byte[] data =params.toString().getBytes();
  2.   
  3. 2)创建URL对象:URL realUrl = new URL(requestUrl);
  4.   
  5. 3)通过HttpURLConnection对象,向网络地址发送请求:HttpURLConnection conn =(HttpURLConnection) realUrl.openConnection();
  6.   
  7. 4)设置容许输出:conn.setDoOutput(true);
  8.   
  9. 5)设置不使用缓存:conn.setUseCaches(false);
  10.   
  11. 6)设置使用POST的方式发送:conn.setRequestMethod("POST");
  12.   
  13. 7)设置维持长连接:conn.setRequestProperty("Connection","Keep-Alive");
  14.   
  15. 8)设置文件字符集:conn.setRequestProperty("Charset","UTF-8");
  16.   
  17. 9)设置文件长度:conn.setRequestProperty("Content-Length",String.valueOf(data.length));
  18.   
  19. 10)设置文件类型:conn.setRequestProperty("Content-Type","application/x-www-form-urlencoded");
  20.   
  21. 11)以流的方式输出.
复制代码

总结:
  --发送 POST请求必须设置允许输出
  --不要使用缓存,容易出现问题.
  --在开始用 HttpURLConnection对象的 setRequestProperty()设置,就是生成 HTML文件头.

        4.向Internet发送xml数据

  XML
格式是通信的标准语言, Android系统也可以通过发送 XML文件传输数据.

Java代码:
  1. 1)将生成的XML文件写入到byte数组中,并设置为UTF-8:byte[] xmlbyte =xml.toString().getBytes("UTF-8");

  2. 2)创建URL对象,并指定地址和参数:URL url = newURL("http://localhost:8080/itcast/contanctmanage.do?method=readxml");

  3. 3)获得链接:HttpURLConnection conn = (HttpURLConnection)url.openConnection();

  4. 4)设置连接超时:conn.setConnectTimeout(6* 1000);

  5. 5)设置允许输出conn.setDoOutput(true);

  6. 6)设置不使用缓存:conn.setUseCaches(false);

  7. 7)设置以POST方式传输:conn.setRequestMethod("POST");

  8. 8)维持长连接:conn.setRequestProperty("Connection","Keep-Alive");

  9. 9)设置字符集:conn.setRequestProperty("Charset", "UTF-8");

  10. 10)设置文件的总长度:conn.setRequestProperty("Content-Length",String.valueOf(xmlbyte.length));

  11. 11)设置文件类型:conn.setRequestProperty("Content-Type", "text/xml;charset=UTF-8");

  12. 12)以文件流的方式发送xml数据:outStream.write(xmlbyte);

复制代码

总结:
  --我们使用的是用 HTML的方式传输文件,这个方式只能传输一般在 5M一下的文件.
  --传输大文件不适合用 HTML的方式,传输大文件我们要面向 Socket编程.确保程序的稳定性.

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值