Andriod文件下载含服务器端(工具包 Httputils)二

同样在上一篇服务器的基础上,本文客户端也在登录界面 Andriod简单http get请求基础上,用户注册后跳转到下载界面,本文下载界面只有两个View,一个是textView显示注册后用户名(本文未做登录界面,方法与注册类似,只是在服务器端查询数据库中用户名,密码是否正确)。另一个为下载按钮,点击后下载到sd卡中。

下面先将工具包,该类封装了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>

时间: 2024-11-09 18:34:12

Andriod文件下载含服务器端(工具包 Httputils)二的相关文章

Andriod文件下载含服务器端(服务器端)一

本文继续讲解andriod网络方面问题.本文主要在Eclipse上搭建服务器端. 同上篇,本文tomcat版本7.0,servlet 3.0不需要在web.xml下注册xml文件. 本文实现的内容较简单,在服务器在磁盘上读取一个pdf(其他文件也行),返回一个流文件给客户端. 服务器端的代码如下: protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletExcept

Andriod文件下载含服务器端(客户端 UI界面异步请求部分)三

本文采用AsyncTask来实现异步请求,具体代码如下: public class downloadActivity extends Activity { private TextView myTextView=null; private Button button=null; private static final String path="http://192.168.0.179:8080/Myweb/download.do"; private ProgressDialog pr

登录界面 Andriod简单http get请求(含服务器端)二

</pre><pre name="code" class="java">//本文未对<span style="font-family: Arial, Helvetica, sans-serif;">username.password进行校验,请读者自行添加该部分,如判断是否为空等</span> public class httpUtils { private static final String

登录界面 Andriod简单http get请求(含服务器端)三

本文为服务器端架构,讲之前,友情提示:记得将客户端 的  Internet权限打开. 客户端采用servlet 3.0搭建不需要再web.xml中进行配置 本文做的功能简单获取到客户端发送过来的username和password即可. 项目结构图: 代码如下get 方法放到post方法处理: protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException,

登录界面 Andriod简单http get请求(含服务器端)五 iOS端(特别篇)

NSDictionary *[email protected]{@"username":user,@"password":password}; AFHTTPRequestOperationManager *manager=[AFHTTPRequestOperationManager manager]; [manager GET:@"http://192.168.0.179:8080/Myweb/Webdo" parameters:dict suc

bootstrap基础学习【表单含按钮】(二)

<!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title>bootstrap基础学习[表单](二)</title> <link rel="stylesheet" href="css/bootstrap.min.css" /> </head> <body style="padd

webService服务器端搭建(二)

原文祭上:http://www.cnblogs.com/xdp-gacl/p/4259481.html 一.服务端java代码搭建 1.书写webService接口 package me.gacl.ws; import javax.jws.WebMethod; import javax.jws.WebService; @WebService public interface WebServiceI { @WebMethod String sayHello(String name); @WebMe

[AR/VR教程] SteamVR Unity工具包(二):激光和移动

Simple Laser Pointer (VRTK_SimplePointer) 简单激光指针(VRTK_ SimplePointer) The Simple Pointer emits a coloured beam from the end of the controller to simulate a laser beam. It can be useful for pointing to objects within a scene and it can also determine

Ireport+JS处理扫描中文二维码

关于JasperReport的基础应用参考: IReport+JasperReport+Applet报表打印 应用IReport+JasperReport处理含中文二维码的思路与过程. 在报表中展现二维条码. 适应扫描器操作处理(中文转义). 结合JS使用条码. 第一部分 在报表中展现二维条码: 参考:iReport中产生二维条码(QR Code) 思路:应用zxing工具包生成二维码的图形,并写入在IReport报表的图像组件中. 步骤1:下载core.jar和javase.jar. 步骤2: