Android开发 Http连接服务器
来源:互联网 发布:java linux 时间戳 编辑:程序博客网 时间:2024/06/04 08:04
由于代码注释很详细,所以就不讲解了,大家都能看的懂。
分为两个类来实现:FileUtils 和 HttpDownload。
首先讲解HttpDownload这个类,代码如下:
package cn.jinbi.HttpURL;import java.io.BufferedReader;import java.io.File;import java.io.IOException;import java.io.InputStream;import java.io.InputStreamReader;import java.net.HttpURLConnection;import java.net.MalformedURLException;import java.net.URL;/**根据URL下载文件:前提是这个文件当中的内容是文本,函数的返回值就是这个文件中的内容 * 1.创建一个URL对象 * 2.通过URL对象,创建HttpURLConnection对象 * 3.得到InputStream * 4.从InputStream当中读取文件 * @author think * */public class HttpDownload {private URL url;public String Download(String urlStr){StringBuffer buffer = new StringBuffer();BufferedReader br = null;String line = null;try {url = new URL(urlStr);//基于Http协议连接对象HttpURLConnection urlCon = (HttpURLConnection)url.openConnection();//设置请求等待响应时间urlCon.setConnectTimeout(5000);//设置请求方式urlCon.setRequestMethod("GET");//如果请求的状态码等于200表示请求成功System.out.println("OK");if (urlCon.getResponseCode() == 200){System.out.println("OK"); br = new BufferedReader(new InputStreamReader(urlCon.getInputStream()));while ((line=br.readLine())!=null){System.out.println("OK");buffer.append(line);}}} catch (IOException e) {e.printStackTrace();}finally{try {br.close();} catch (IOException e) {e.printStackTrace();}}return buffer.toString();}/** * @param urlStr 链接 * @param path 文件存放的目录 * @param fileName 文件的文件名 * @return 整数-1,表明下载文件出错;0表示成功;1代表已经存在了 */public int downFile(String urlStr,String path,String fileName){InputStream inputStream = null;try{FileUtils fileUtils = new FileUtils();if (fileUtils.isFileExist(path + fileName)){return 1;}else{inputStream = getInputStreamFromUrl(urlStr);File resultFile = fileUtils.write2SDFromInput(path, fileName, inputStream);if (resultFile == null){return -1;}}}catch(Exception e){e.printStackTrace();return -1;}finally{try{inputStream.close();}catch(Exception e){e.printStackTrace();}}return 0;}/** * 根据URL得到输入流 * @param urlStr * @return * @throws MalformedURLException * @throws IOException */public InputStream getInputStreamFromUrl(String urlStr)throws MalformedURLException,IOException{url = new URL(urlStr);HttpURLConnection urlConn = (HttpURLConnection)url.openConnection();InputStream inputStream = urlConn.getInputStream();return inputStream;}}
然后是FileUtils这个类的代码:package cn.jinbi.HttpURL;import java.io.File;import java.io.FileOutputStream;import java.io.IOException;import java.io.InputStream;import java.io.OutputStream;import android.os.Environment;public class FileUtils {private String SDPATH;public String getSDPATH(){return SDPATH;}public FileUtils(){//得到当前外部存储设备的目录SDPATH = Environment.getExternalStorageDirectory()+"/";}/** * 在SD卡上创建文件 * @throws IOException */public File createSDFile(String fileName)throws IOException{File file = new File(SDPATH + fileName);file.createNewFile();return file;}/** * 在SD卡上创建目录 * @param dirName */public File createSDDir(String dirName){File dir = new File(SDPATH + dirName);dir.mkdir();return dir;}/** * 判断文件是否存在 * @param fileName */public boolean isFileExist(String fileName){File file = new File(SDPATH + fileName);return file.exists();}public File write2SDFromInput(String path,String fileName,InputStream input){File file = null;OutputStream output = null;try{//创建目录createSDDir(path);//创建文件file = createSDFile(path + fileName);//创建写入数据流output = new FileOutputStream(file);byte buffer[] = new byte[4 * 1024];while ((input.read(buffer))!=-1){output.write(buffer);}output.flush();}catch(Exception e){e.printStackTrace();}finally{try{output.close();}catch(Exception e){e.printStackTrace();}}return file;}}
最后需要注意的是:别忘了加上权限:
1。访问网络的权限:
<uses-permission android:name="android.permission.INTERNET"/>
2。访问内存卡的权限:
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>
- Android开发 Http连接服务器
- android http连接服务器
- android HTTP形式连接服务器
- android使用http协议连接服务器
- android HttP请求服务器,连接超时
- android开发之Http与服务器交互
- Android开发 http和https连接
- java开发之用http协议连接web服务器
- Android 开发中与服务器连接随笔
- Androidの网络Http之判断是否连接服务器
- Android之网络Http之判断是否连接服务器
- Android连接服务器请求架包之 Async-http-client
- Android的网络Http判断是否连接服务器
- HTTP服务器开发教程
- REST,http,服务器开发
- http客户端服务器开发
- 【Android开发】如何实现android和服务器长连接呢?
- 短连接http服务器陷阱
- Lazarus 中安装Grid++Report报表控件
- zf blog 数据库
- 多式样ProgressBar
- WebKit for Developers
- id
- Android开发 Http连接服务器
- bash的for循环从命令读取值
- 《数据通信与网络》笔记--IP组播路由协议
- 用友CDM业务单据增加字段
- Java中的DeskTop类
- Java Web学习笔记(六)
- LINUX内核经典面试题
- OpenVPN莫名其妙断线的问题及其解决-confirm
- HDOJ 1824 - Let's go home 简单构图2-set