resttemplate发送post请求并携带文件
时间: 2023-08-16 13:05:38 浏览: 100
RestTemplate实现post、get等请求工具类
您可以使用`RestTemplate`发送带有文件的POST请求。以下是一个示例:
```java
import org.springframework.core.io.FileSystemResource;
import org.springframework.http.HttpEntity;
import org.springframework.http.HttpHeaders;
import org.springframework.http.MediaType;
import org.springframework.http.ResponseEntity;
import org.springframework.util.LinkedMultiValueMap;
import org.springframework.util.MultiValueMap;
import org.springframework.web.client.RestTemplate;
import java.io.File;
public class FileUploadExample {
public static void main(String[] args) {
String url = "http://example.com/upload";
String filePath = "/path/to/file.txt";
RestTemplate restTemplate = new RestTemplate();
// 设置请求头
HttpHeaders headers = new HttpHeaders();
headers.setContentType(MediaType.MULTIPART_FORM_DATA);
// 构建请求体
MultiValueMap<String, Object> body = new LinkedMultiValueMap<>();
body.add("file", new FileSystemResource(new File(filePath)));
// 构建请求实体
HttpEntity<MultiValueMap<String, Object>> requestEntity = new HttpEntity<>(body, headers);
// 发送请求
ResponseEntity<String> response = restTemplate.postForEntity(url, requestEntity, String.class);
// 处理响应
if (response.getStatusCode().is2xxSuccessful()) {
System.out.println("文件上传成功");
} else {
System.out.println("文件上传失败");
}
}
}
```
在上述示例中,您需要设置正确的URL和文件路径。通过将文件包装在`FileSystemResource`中,并将其添加到`MultiValueMap`中,您可以将文件作为Multipart形式的请求体发送到服务器。
阅读全文