发送请求,将网页以流的形式读回来.
Java代码:
- 1)创建一个URL对象:URL url = newURL("http://www.eoeandroid.com");
- 2)利用HttpURLConnection对象从网络中获取网页数据:HttpURLConnection conn =(HttpURLConnection) url.openConnection();
- 3)设置连接超时:conn.setConnectTimeout(6* 1000);
- 4)对响应码进行判断:if (conn.getResponseCode() != 200) throw newRuntimeException("请求url失败");
- 5)得到网络返回的输入流:InputStream is = conn.getInputStream();
- 6)String result = readData(is, "GBK");
- conn.disconnect();
利用 HttpURLConnection对象,我们可以从网络中获取文件数据.
Java代码:
- 1)创建URL对象,并将文件路径传入:URL url = newURL(http://www.eoeandroid.com/Img269812337.jpg);
- 2)创建HttpURLConnection对象,从网络中获取文件数据:HttpURLConnection conn =(HttpURLConnection) url.openConnection();
- 3)设置连接超时:conn.setConnectTimeout(6* 1000);
- 4)对响应码进行判断:if (conn.getResponseCode() != 200) throw newRuntimeException("请求url失败");
- 5)得到网络返回的输入流:InputStream is = conn.getInputStream();
-
- 6)将得到的文件流写出:outStream.write(buffer, 0, len);
总结:
--在对大文件的操作时,要将文件写到 SDCard上面,不要直接写到手机内存上.
--操作大文件是,要一遍从网络上读,一遍要往 SDCard上面写,减少手机内存的使用.这点很重要,面试经常会被问到.
--对文件流操作完,要记得及时关闭.
Java代码:
- 1)将地址和参数存到byte数组中:byte[] data =params.toString().getBytes();
-
- 2)创建URL对象:URL realUrl = new URL(requestUrl);
-
- 3)通过HttpURLConnection对象,向网络地址发送请求:HttpURLConnection conn =(HttpURLConnection) realUrl.openConnection();
-
- 4)设置容许输出:conn.setDoOutput(true);
-
- 5)设置不使用缓存:conn.setUseCaches(false);
-
- 6)设置使用POST的方式发送:conn.setRequestMethod("POST");
-
- 7)设置维持长连接:conn.setRequestProperty("Connection","Keep-Alive");
-
- 8)设置文件字符集:conn.setRequestProperty("Charset","UTF-8");
-
- 9)设置文件长度:conn.setRequestProperty("Content-Length",String.valueOf(data.length));
-
- 10)设置文件类型:conn.setRequestProperty("Content-Type","application/x-www-form-urlencoded");
-
- 11)以流的方式输出.
总结:
--发送 POST请求必须设置允许输出
--不要使用缓存,容易出现问题.
--在开始用 HttpURLConnection对象的 setRequestProperty()设置,就是生成 HTML文件头.
XML格式是通信的标准语言, Android系统也可以通过发送 XML文件传输数据.
Java代码:
- 1)将生成的XML文件写入到byte数组中,并设置为UTF-8:byte[] xmlbyte =xml.toString().getBytes("UTF-8");
- 2)创建URL对象,并指定地址和参数:URL url = newURL("http://localhost:8080/itcast/contanctmanage.do?method=readxml");
- 3)获得链接:HttpURLConnection conn = (HttpURLConnection)url.openConnection();
- 4)设置连接超时:conn.setConnectTimeout(6* 1000);
- 5)设置允许输出conn.setDoOutput(true);
- 6)设置不使用缓存:conn.setUseCaches(false);
- 7)设置以POST方式传输:conn.setRequestMethod("POST");
- 8)维持长连接:conn.setRequestProperty("Connection","Keep-Alive");
- 9)设置字符集:conn.setRequestProperty("Charset", "UTF-8");
- 10)设置文件的总长度:conn.setRequestProperty("Content-Length",String.valueOf(xmlbyte.length));
- 11)设置文件类型:conn.setRequestProperty("Content-Type", "text/xml;charset=UTF-8");
- 12)以文件流的方式发送xml数据:outStream.write(xmlbyte);
总结:
--我们使用的是用 HTML的方式传输文件,这个方式只能传输一般在 5M一下的文件.
--传输大文件不适合用 HTML的方式,传输大文件我们要面向 Socket编程.确保程序的稳定性.