`
中华好儿孙
  • 浏览: 66118 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

HttpClient的使用,java代码发送http请求文件

阅读更多
//java代码发http请求
public void sendHttpRequest(String selfIpPort, String filePath) throws Exception{
		
		List<String> ipPortList = customerLoginService.queryIpPortList(selfIpPort);
		for (Iterator iterator = ipPortList.iterator(); iterator.hasNext();) {
			String ipPort = (String) iterator.next();
			String urlStr = "http://"+ipPort+"/TAWM/fileDownload/electronicContractPart/getFile";
			//注意权限的拦截, 得不到数据可能是因为url被权限拦截。
			HttpClient httpClient = HttpUtil.getHttpClient();
			PostMethod post = new PostMethod(urlStr);
			NameValuePair[] valuePairs = new NameValuePair[1];
			valuePairs[0] = new NameValuePair("filePath", filePath);
			post.addParameters(valuePairs);
			
			int ret = httpClient.executeMethod(post);
			log.debug("HTTP状态:" + ret);
			if(ret != 200){
				String[] ipPortArr = ipPort.split(":");
				customerLoginService.updateServerStatus(ipPortArr[0], ipPortArr[1]);
				return ;
			}
			
			InputStream inputStream = post.getResponseBodyAsStream();
			
			FileOutputStream fos = new FileOutputStream(filePath);
			
			byte buffer[] = new byte[2048];
			int len = 0;
			//循环将输入流中的内容读取到缓冲区当中
			while((len=inputStream.read(buffer))>0){
				//输出缓冲区的内容到浏览器,实现文件下载
				fos.write(buffer, 0, len);
			}
			fos.close();
			inputStream.close();
		}
	}

//响应http请求
@RequestMapping("/electronicContractPart/getFile")
	public void getFileBytes(HttpServletRequest request, HttpServletResponse response){
		try {
			String filePath = request.getParameter("filePath");
			
			if(!new File(filePath).exists()){
				return ;
			}
			//读取要下载的文件
			FileInputStream in = new FileInputStream(filePath);
			//创建缓冲区
			byte buffer[] = new byte[2048];
			OutputStream outputStream = response.getOutputStream();
			int len = 0;
			while((len=in.read(buffer))>0){
				outputStream.write(buffer, 0, len);
			}
			outputStream.flush();
			in.close();
		} catch (Exception e) {
			e.printStackTrace();
		}
	}
分享到:
评论

相关推荐

    Java后端HttpClient Post提交文件流 及服务端接收文件流

    HttpClient Post提交多文件及多个普通参数,已经封装成工具类。 需传入 要请求的url 普通参数map 例 map.put("param1","张三"); 需要传入的文件流map 其中key为文件名 服务端接收无乱码。

    JAVA上百实例源码以及开源项目

     Java二进制IO类与文件复制操作实例,好像是一本书的例子,源代码有的是独立运行的,与同目录下的其它代码文件互不联系,这些代码面向初级、中级Java程序员。 Java访问权限控制源代码 1个目标文件 摘要:Java源码,...

    JAVA上百实例源码以及开源项目源代码

     Java二进制IO类与文件复制操作实例,好像是一本书的例子,源代码有的是独立运行的,与同目录下的其它代码文件互不联系,这些代码面向初级、中级Java程序员。 Java访问权限控制源代码 1个目标文件 摘要:Java源码,...

    forest:Java的高级轻量级HTTP客户端框架。 它使使用Java发送HTTP请求更加容易

    相比于直接使用Httpclient您不再用写一大堆重复的代码了,而是像调用本地方法一样去发送HTTP请求。 文档和示例: Forest有哪些特性? 以Httpclient和OkHttp为后端框架 通过调用本地方法的方式去发送Http请求, 实现了...

    java实现读取证书访问https接口

    java实现读取证书访问https接口并获取返回数据.证书格式cer,der,crt等。

    HttpClient以及获取页面内容应用

    使用HttpClient发送请求、接收响应很简单,一般需要如下几步即可。 1.创建HttpClient对象。 HttpClient client = new HttpClient(); 2.创建请求方法的实例,并指定请求URL。如果需要发送GET请求,创建HttpGet对象;...

    HttpClient通信所需jar包(全)

    HttpClient相比传统JDK自带的URLConnection,增加了易用性和灵活性,它不仅使客户端发送HTTP请求变得容易,而且也方便了开发人员测试接口(基于Http协议的),即提高了开发的效率,也方便提高代码的健壮性。

    java开源包8

    Blister是一个用于操作苹果二进制PList文件格式的Java开源类库(可用于发送数据给iOS应用程序)。 重复文件检查工具 FindDup.tar FindDup 是一个简单易用的工具,用来检查计算机上重复的文件。 OpenID的Java客户端...

    java开源包10

    Blister是一个用于操作苹果二进制PList文件格式的Java开源类库(可用于发送数据给iOS应用程序)。 重复文件检查工具 FindDup.tar FindDup 是一个简单易用的工具,用来检查计算机上重复的文件。 OpenID的Java客户端...

    java开源包4

    Blister是一个用于操作苹果二进制PList文件格式的Java开源类库(可用于发送数据给iOS应用程序)。 重复文件检查工具 FindDup.tar FindDup 是一个简单易用的工具,用来检查计算机上重复的文件。 OpenID的Java客户端...

    java开源包11

    Blister是一个用于操作苹果二进制PList文件格式的Java开源类库(可用于发送数据给iOS应用程序)。 重复文件检查工具 FindDup.tar FindDup 是一个简单易用的工具,用来检查计算机上重复的文件。 OpenID的Java客户端...

    java开源包6

    Blister是一个用于操作苹果二进制PList文件格式的Java开源类库(可用于发送数据给iOS应用程序)。 重复文件检查工具 FindDup.tar FindDup 是一个简单易用的工具,用来检查计算机上重复的文件。 OpenID的Java客户端...

    java开源包101

    Blister是一个用于操作苹果二进制PList文件格式的Java开源类库(可用于发送数据给iOS应用程序)。 重复文件检查工具 FindDup.tar FindDup 是一个简单易用的工具,用来检查计算机上重复的文件。 OpenID的Java客户端...

    java开源包9

    Blister是一个用于操作苹果二进制PList文件格式的Java开源类库(可用于发送数据给iOS应用程序)。 重复文件检查工具 FindDup.tar FindDup 是一个简单易用的工具,用来检查计算机上重复的文件。 OpenID的Java客户端...

    java开源包1

    Blister是一个用于操作苹果二进制PList文件格式的Java开源类库(可用于发送数据给iOS应用程序)。 重复文件检查工具 FindDup.tar FindDup 是一个简单易用的工具,用来检查计算机上重复的文件。 OpenID的Java客户端...

    java开源包5

    Blister是一个用于操作苹果二进制PList文件格式的Java开源类库(可用于发送数据给iOS应用程序)。 重复文件检查工具 FindDup.tar FindDup 是一个简单易用的工具,用来检查计算机上重复的文件。 OpenID的Java客户端...

    java开源包3

    Blister是一个用于操作苹果二进制PList文件格式的Java开源类库(可用于发送数据给iOS应用程序)。 重复文件检查工具 FindDup.tar FindDup 是一个简单易用的工具,用来检查计算机上重复的文件。 OpenID的Java客户端...

    java开源包2

    Blister是一个用于操作苹果二进制PList文件格式的Java开源类库(可用于发送数据给iOS应用程序)。 重复文件检查工具 FindDup.tar FindDup 是一个简单易用的工具,用来检查计算机上重复的文件。 OpenID的Java客户端...

    java开源包7

    Blister是一个用于操作苹果二进制PList文件格式的Java开源类库(可用于发送数据给iOS应用程序)。 重复文件检查工具 FindDup.tar FindDup 是一个简单易用的工具,用来检查计算机上重复的文件。 OpenID的Java客户端...

Global site tag (gtag.js) - Google Analytics