//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请求 在Java中使用HttpClient发送GET请求相对简单。首先,需要创建一个`HttpClient`实例,然后使用`...
在Java编程中,HttpClient是一个非常重要的工具库,用于发送HTTP请求和处理响应。这个工具广泛应用于各种场景,如数据抓取、API交互等。本文将深入讲解如何使用HttpClient来发送HTTP请求,以及相关的源码分析。 ...
在Java编程中,HttpClient是一个非常重要的工具库,用于发送HTTP请求。这个压缩包可能包含了实现HTTP GET和POST请求所需的jar包以及示例代码,帮助开发者理解如何使用HttpClient进行网络通信。下面将详细介绍...
在本实例中,我们将深入探讨如何使用HttpClient来发送请求以及处理返回的数据。 首先,让我们了解HttpClient的基本用法。Apache HttpClient库提供了一个`CloseableHttpClient`接口,它是执行HTTP请求的主要入口点。...
- **执行请求**:使用HttpClient的`execute()`方法发送请求,并获取`HttpResponse`对象。 - **处理响应**:检查响应状态码,通常200表示成功。然后,通过`EntityUtils`类的`toString()`或`getContent()`方法获取...
以下是一个使用HttpClient发送POST请求的例子: ```java CloseableHttpClient httpClient = HttpClients.createDefault(); HttpPost httpPost = new HttpPost("https://example.com"); List<NameValuePair> params ...
HttpClient Post提交多文件及多个普通参数,已经封装成工具类。 需传入 要请求的url 普通参数map 例 map.put("param1","张三"); 需要传入的文件流map 其中key为文件名 服务端接收无乱码。
使用HttpClient发送一个简单的GET请求,可以这样编写代码: ```java CloseableHttpClient httpClient = HttpClients.createDefault(); HttpGet httpGet = new HttpGet("http://example.com"); ...
在Java中,我们可以使用`java.net.HttpURLConnection`或`org.apache.http.client.HttpClient`(Apache HttpClient库)来发送HTTP请求。这两个方法各有优劣:`HttpURLConnection`是Java内置的API,更轻量级,但功能...
3. **在Java代码中配置TrustStore**:在Java代码中,你需要设置`javax.net.ssl.trustStore`和`javax.net.ssl.trustStorePassword`系统属性,指向你的TrustStore文件和密码: ```java System.setProperty("javax...
它们解释了如何使用HTTPClient发送请求,如何构造RESTful接口,以及如何处理分布式环境下的特定问题。良好的注释可以使代码更易读,有助于团队协作和维护。 综上所述,HTTPClient和RESTful风格的文件上传下载在Java...
在Java编程中,HTTPClient库是一个非常常用的工具,用于发送HTTP请求,包括POST方式的请求。本篇文章将详细讲解如何使用HTTPClient库以POST方式发送JSON格式的数据,并介绍相关依赖包。 首先,为了使用HTTPClient库...
本文将深入探讨如何使用Java实现HTTP文件上传,同时基于提供的压缩包资源,我们将详细介绍相关代码和类库。 首先,了解HTTP文件上传的基本原理。在HTTP中,文件上传通常使用POST方法,通过表单数据或者Multipart/...
HttpClient是Apache基金会开发的一个HTTP客户端库,用于在Java应用程序中执行HTTP请求。它提供了丰富的API,使得开发者可以方便地发送HTTP请求(包括POST和GET)并处理响应,同时还支持文件的上传和下载功能。本文将...
本文将深入探讨如何使用HttpClient进行GET和POST请求,并提供相关的代码示例。 首先,GET请求是最常见的HTTP请求类型,通常用于获取资源。在HttpClient中,发送GET请求可以通过`HttpGet`类实现。以下是一个简单的...
最后,我们需要使用HttpClient发送POST请求。首先,创建一个`CloseableHttpClient`实例,然后构建一个`HttpPost`对象,指定请求的URL。接着,设置`HttpPost`的实体为之前创建的`InputStreamEntity`,并执行请求: `...
首先,Java提供了多种库来帮助我们发送HTTP请求,如`java.net.URL`和`java.net.HttpURLConnection`,或者更高级的库如Apache HttpClient和OkHttp。在这里,我们主要关注使用`HttpURLConnection`,它是Java标准库的一...
以上就是使用Java HTTP发送XML报文的基本步骤。在实际应用中,可能还需要考虑错误处理、重试机制、超时设置等高级特性。同时,对于大型项目,可能需要使用更高级的HTTP客户端库,如Apache HttpClient或OkHttp,它们...