Androids含文档erver结束(工具包 Httputils)两
2015-07-25 19:31
573 查看
在同server在...的基础上,本文client还登录界面 Andriod简单http get请求基础上,用户注冊后跳转到下载界面,本文下载界面仅仅有两个View,一个是textView显示注冊后username(本文未做登录界面,方法与注冊类似。仅仅是在server端查询数据库中username,password是否正确)。还有一个为下载button。点击后下载到sd卡中。
以下先将工具包,该类封装了Http请求,本文使用get方法,使用HttpURLConnection类来负责详细请求。
httpUtils类中加入sendDownloadPost方法
详细代码例如以下:
友情提示:本文须要加入的权限有:internet訪问权限,SD卡文件读写权限,SD卡文件创建权限
详细在manifest.xml
加入例如以下:
<uses-permission android:name="android.permission.INTERNET"></uses-permission>
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"></uses-permission>
<uses-permission android:name="android.permission.MOUNT_UNMOUNT_FILESYSTEMS"></uses-permission>
ps:若想下载文件名称与server上文件名称同样,可在文件名称之前,中间处理了中文乱码问题
String filename = connection.getHeaderField("Content-Disposition");
filename=new String(filename.getBytes("iso8859-1"), "gbk");
filename=filename.split("filename=")[1];
加入到
以下先将工具包,该类封装了Http请求,本文使用get方法,使用HttpURLConnection类来负责详细请求。
httpUtils类中加入sendDownloadPost方法
详细代码例如以下:
public static void sendDownloadPost(URL urls) { InputStream inputStream=null; //String path="http://192.168.0.179:8080/Myweb/download.do"; OutputStream outputStream=null; try { //url = new URL(urls); //本文採用HttpURLConnection,HttpClient一样能够 HttpURLConnection connection=(HttpURLConnection) urls.openConnection(); connection.setRequestMethod("GET"); //超时请求设置为3s connection.setConnectTimeout(3000); //设置响应时间10s connection.setReadTimeout(10000); connection.setDoInput(true); connection.setDoOutput(true); //获取返回码 int responseCode=connection.getResponseCode(); //请求正确 if(responseCode==200) { Log.d(TAG, "返回正确!。"); inputStream=new BufferedInputStream(connection.getInputStream()); //生成sd卡文件路径 File file=new File(Environment.getExternalStorageDirectory()+File.separator +"A.pdf"); outputStream=new BufferedOutputStream(new FileOutputStream(file)); byte[] str=new byte[2048]; int len=-1; if(Environment.MEDIA_MOUNTED.equals(Environment.getExternalStorageState())) { Log.d(TAG, "有权限"); //将inpustream写入到sd卡 while((len=inputStream.read(str))!=-1) { outputStream.write(str, 0, len); } } } } catch (IOException e) { // TODO Auto-generated catch block e.printStackTrace(); }finally{ if(inputStream!=null) { try { inputStream.close(); } catch (IOException e) { // TODO Auto-generated catch block e.printStackTrace(); } } if(outputStream!=null) { try { outputStream.close(); } catch (IOException e) { // TODO Auto-generated catch block e.printStackTrace(); } } } return; }
友情提示:本文须要加入的权限有:internet訪问权限,SD卡文件读写权限,SD卡文件创建权限
详细在manifest.xml
加入例如以下:
<uses-permission android:name="android.permission.INTERNET"></uses-permission>
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"></uses-permission>
<uses-permission android:name="android.permission.MOUNT_UNMOUNT_FILESYSTEMS"></uses-permission>
ps:若想下载文件名称与server上文件名称同样,可在文件名称之前,中间处理了中文乱码问题
String filename = connection.getHeaderField("Content-Disposition");
filename=new String(filename.getBytes("iso8859-1"), "gbk");
filename=filename.split("filename=")[1];
加入到
File file=new File(Environment.getExternalStorageDirectory()+File.separator +"A.pdf");A.pdf阅读filename能够
相关文章推荐
- 网络访问之图片显示
- nfs基本应用之httpd+nfs负载均衡实验
- HTTP Web服务器研究之二 HTTP协议
- WARN [http-8080-1] - No mapping found for HTTP request with URI [/MyLibrary/books/listBooks.action]
- 黑马程序员——Java网络编程
- 径向基神经网络(实例故障分类)
- [知识点]网络流之Dinic算法
- Windows网络编程:阻塞模式下的Socket编程
- TCP数据段格式+UDP数据段格式详解
- Android的http两种请求方式
- 黑马程序员--网络编程
- [知识点]网络流之Edmond-Karp算法
- HttpUrlConnection上传图片代码实现
- tcpdump丢包问题解决方法
- http form get post本质区别
- 以太网帧格式、IP数据报格式、TCP段格式+UDP段格式 详解
- poj 1679 http://poj.org/problem?id=1679
- [网络流24题] 03 最小路径覆盖问题(有向无环图最小路径覆盖,网络最大流)
- ubuntu设置系统时间与网络时间同步(转)
- ubuntu设置系统时间与网络时间同步(转)