`
中华好儿孙
  • 浏览: 68779 次
  • 性别: 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 发送GET请求和带有表单参数的POST请求教程例子

    本文将通过具体的代码示例,详细介绍如何使用Java HttpClient来发送这两种类型的请求。 #### 二、发送GET请求 在Java中使用HttpClient发送GET请求相对简单。首先,需要创建一个`HttpClient`实例,然后使用`...

    java使用HttpClient发送http请求

    在Java编程中,HttpClient是一个非常重要的工具库,用于发送HTTP请求和处理响应。这个工具广泛应用于各种场景,如数据抓取、API交互等。本文将深入讲解如何使用HttpClient来发送HTTP请求,以及相关的源码分析。 ...

    HttpClient发送http请求(post和get)需要的jar包+内符java代码案例+注解详解

    在Java编程中,HttpClient是一个非常重要的工具库,用于发送HTTP请求。这个压缩包可能包含了实现HTTP GET和POST请求所需的jar包以及示例代码,帮助开发者理解如何使用HttpClient进行网络通信。下面将详细介绍...

    JAVA发送HttpClient请求及接收请求完整代码实例

    在本实例中,我们将深入探讨如何使用HttpClient来发送请求以及处理返回的数据。 首先,让我们了解HttpClient的基本用法。Apache HttpClient库提供了一个`CloseableHttpClient`接口,它是执行HTTP请求的主要入口点。...

    java使用HttpClient通过url下载文件到本地

    - **执行请求**:使用HttpClient的`execute()`方法发送请求,并获取`HttpResponse`对象。 - **处理响应**:检查响应状态码,通常200表示成功。然后,通过`EntityUtils`类的`toString()`或`getContent()`方法获取...

    java发送http/https请求(get/post)代码

    以下是一个使用HttpClient发送POST请求的例子: ```java CloseableHttpClient httpClient = HttpClients.createDefault(); HttpPost httpPost = new HttpPost("https://example.com"); List&lt;NameValuePair&gt; params ...

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

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

    java-http请求jar包

    使用HttpClient发送一个简单的GET请求,可以这样编写代码: ```java CloseableHttpClient httpClient = HttpClients.createDefault(); HttpGet httpGet = new HttpGet("http://example.com"); ...

    JAVA 发送http请求工具类

    在Java中,我们可以使用`java.net.HttpURLConnection`或`org.apache.http.client.HttpClient`(Apache HttpClient库)来发送HTTP请求。这两个方法各有优劣:`HttpURLConnection`是Java内置的API,更轻量级,但功能...

    java 发送https 请求 证书

    3. **在Java代码中配置TrustStore**:在Java代码中,你需要设置`javax.net.ssl.trustStore`和`javax.net.ssl.trustStorePassword`系统属性,指向你的TrustStore文件和密码: ```java System.setProperty("javax...

    httpclient和RestfuL风格上传下载文件

    它们解释了如何使用HTTPClient发送请求,如何构造RESTful接口,以及如何处理分布式环境下的特定问题。良好的注释可以使代码更易读,有助于团队协作和维护。 综上所述,HTTPClient和RESTful风格的文件上传下载在Java...

    httpclient post方式发送请求

    在Java编程中,HTTPClient库是一个非常常用的工具,用于发送HTTP请求,包括POST方式的请求。本篇文章将详细讲解如何使用HTTPClient库以POST方式发送JSON格式的数据,并介绍相关依赖包。 首先,为了使用HTTPClient库...

    java代码模拟http上传文件_代码_类包

    本文将深入探讨如何使用Java实现HTTP文件上传,同时基于提供的压缩包资源,我们将详细介绍相关代码和类库。 首先,了解HTTP文件上传的基本原理。在HTTP中,文件上传通常使用POST方法,通过表单数据或者Multipart/...

    HttpClient实现POST GET和文件下载

    HttpClient是Apache基金会开发的一个HTTP客户端库,用于在Java应用程序中执行HTTP请求。它提供了丰富的API,使得开发者可以方便地发送HTTP请求(包括POST和GET)并处理响应,同时还支持文件的上传和下载功能。本文将...

    httpclient发送get请求和post请求demo

    本文将深入探讨如何使用HttpClient进行GET和POST请求,并提供相关的代码示例。 首先,GET请求是最常见的HTTP请求类型,通常用于获取资源。在HttpClient中,发送GET请求可以通过`HttpGet`类实现。以下是一个简单的...

    java 中HttpClient传输xml字符串实例详解

    最后,我们需要使用HttpClient发送POST请求。首先,创建一个`CloseableHttpClient`实例,然后构建一个`HttpPost`对象,指定请求的URL。接着,设置`HttpPost`的实体为之前创建的`InputStreamEntity`,并执行请求: `...

    Java编程:发送HTTP请求,返回响应内容

    首先,Java提供了多种库来帮助我们发送HTTP请求,如`java.net.URL`和`java.net.HttpURLConnection`,或者更高级的库如Apache HttpClient和OkHttp。在这里,我们主要关注使用`HttpURLConnection`,它是Java标准库的一...

    java http 发送xml报文(java发送xml报文实例+参数)

    以上就是使用Java HTTP发送XML报文的基本步骤。在实际应用中,可能还需要考虑错误处理、重试机制、超时设置等高级特性。同时,对于大型项目,可能需要使用更高级的HTTP客户端库,如Apache HttpClient或OkHttp,它们...

Global site tag (gtag.js) - Google Analytics