大家肯定很奇怪,为什么我写一编文章,原因是这样,android双向通信会用到协议,有http:协议, ftp: 协议,tip/ip 协议
所以我写一个JAVA小程序,让大家有所了解一下获取的流程。
- package com.smart.test;
- import java.io.ByteArrayOutputStream;
- import java.io.File;
- import java.io.FileOutputStream;
- import java.io.InputStream;
- import java.net.HttpURLConnection;
- import java.net.URL;
- import org.junit.Test;
- public class InternetTest {
- // 读取的方法
- public byte[] readStream(InputStream inStream) throws Exception {
- ByteArrayOutputStream outstream = new ByteArrayOutputStream();
- byte[] buffer = new byte[1024]; // 用数据装
- int len = -1;
- while ((len = inStream.read(buffer)) != -1) {
- outstream.write(buffer, 0, len);
- }
- outstream.close();
- inStream.close();
- // 关闭流一定要记得。
- return outstream.toByteArray();
- }
- @Test
- public void getImage() throws Exception {
- //要下载的图片的地址,
- String urlPath = "http://t2.gstatic.com/p_w_picpaths?q=tbn:9g03SOE7gW2gEM:http://dev.10086.cn/cmdn/supesite";
- URL url = new URL(urlPath);//获取到路径
- // http协议连接对象
- HttpURLConnection conn = (HttpURLConnection) url.openConnection();
- conn.setRequestMethod("GET");// 这里是不能乱写的,详看API方法
- conn.setConnectTimeout(6 * 1000);
- // 别超过10秒。
- System.out.println(conn.getResponseCode());
- if (conn.getResponseCode() == 200) {
- InputStream inputStream = conn.getInputStream();
- byte[] data = readStream(inputStream);
- File file = new File("smart.jpg");// 给图片起名子
- FileOutputStream outStream = new FileOutputStream(file);//写出对象
- outStream.write(data);// 写入
- outStream.close(); // 关闭流
- }
- }
- }