我有两个endpointapi,它们是/uploadand/redirect
package com.example;
import java.io.BufferedOutputStream;
import java.io.File;
import java.io.FileOutputStream;
import java.util.HashMap;
import java.util.Map;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Qualifier;
import org.springframework.boot.web.client.RestTemplateBuilder;
import org.springframework.context.annotation.Bean;
import org.springframework.http.HttpEntity;
import org.springframework.http.HttpHeaders;
import org.springframework.http.MediaType;
import org.springframework.http.ResponseEntity;
import org.springframework.stereotype.Controller;
import org.springframework.util.LinkedMultiValueMap;
import org.springframework.util.MultiValueMap;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.ResponseBody;
import org.springframework.web.bind.annotation.RestController;
import org.springframework.web.client.RestTemplate;
import org.springframework.web.multipart.MultipartFile;
@RestController
public class UserLogsController {
@Autowired
@Qualifier("restTemplateUserRegitration")
private RestTemplate restTemplateUserRegitration;
@Bean
public RestTemplate restTemplateUserRegitration() {
RestTemplateBuilder builderUserRegitration = new RestTemplateBuilder();
RestTemplate buildUserRegitration = builderUserRegitration.build();
return buildUserRegitration;
}
@RequestMapping(value = "/upload", method = RequestMethod.POST)
public @ResponseBody ResponseEntity<Map<String, Object>> handleFileUpload(
@RequestParam("file") MultipartFile file) {
String name = file.getName();
System.out.println(name);
if (!file.isEmpty()) {
try {
byte[] bytes = file.getBytes();
BufferedOutputStream stream = new BufferedOutputStream(
new FileOutputStream(new File("D:\\myfile.csv")));
stream.write(bytes);
stream.close();
JwtAuthenticationErrorResponse FeedBackResponse = new JwtAuthenticationErrorResponse();
FeedBackResponse.setCode(100);
FeedBackResponse.setMessage("Successfully Updated Batch User List");
Map<String, Object> FeedBackStatus = new HashMap<String, Object>();
FeedBackStatus.put("status", FeedBackResponse);
return ResponseEntity.ok(FeedBackStatus);
} catch (Exception e) {
JwtAuthenticationErrorResponse FeedBackResponse = new JwtAuthenticationErrorResponse();
FeedBackResponse.setCode(100);
FeedBackResponse.setMessage(e.getMessage());
Map<String, Object> FeedBackStatus = new HashMap<String, Object>();
FeedBackStatus.put("status", FeedBackResponse);
return ResponseEntity.ok(FeedBackStatus);
}
} else {
JwtAuthenticationErrorResponse FeedBackResponse = new JwtAuthenticationErrorResponse();
FeedBackResponse.setCode(100);
FeedBackResponse.setMessage("Successfully Updated Batch User List");
Map<String, Object> FeedBackStatus = new HashMap<String, Object>();
FeedBackStatus.put("status", FeedBackResponse);
return ResponseEntity.ok(FeedBackStatus);
}
}
@RequestMapping(value = "/redirect", produces = { MediaType.APPLICATION_JSON_VALUE }, method = RequestMethod.POST)
public ResponseEntity<?> registerBatchUser(@RequestParam("file") MultipartFile file) {
Map<String, Object> FeedBackStatus = new HashMap<String, Object>();
FeedBackStatus = restTemplateUserRegitration.postForObject("http://localhost:8080/upload", file, Map.class);
return ResponseEntity.ok(FeedBackStatus);
}
}
我不知道为什么会发生这种情况。谢谢你的帮助。
这就成功了
@RequestMapping(value = "/redirect", produces = { MediaType.APPLICATION_JSON_VALUE }, method = RequestMethod.POST)
public ResponseEntity<?> registerBatchUser(@RequestParam("file") MultipartFile file) {
if (!file.isEmpty()) {
try {
byte[] bytes = file.getBytes();
BufferedOutputStream stream = new BufferedOutputStream(
new FileOutputStream(new File("D:\\myfileredirect.csv")));
stream.write(bytes);
stream.close();
} catch (Exception e) {
JwtAuthenticationErrorResponse FeedBackResponse = new JwtAuthenticationErrorResponse();
FeedBackResponse.setCode(100);
FeedBackResponse.setMessage(e.getMessage());
Map<String, Object> FeedBackStatus = new HashMap<String, Object>();
FeedBackStatus.put("status", FeedBackResponse);
return ResponseEntity.ok(FeedBackStatus);
}
MultiValueMap<String, Object> parameters = new LinkedMultiValueMap<String, Object>();
parameters.add("file", new FileSystemResource("D:\\myfileredirect.csv"));
HttpHeaders headers = new HttpHeaders();
headers.set("Content-Type", "multipart/form-data");
Map<String, Object> FeedBackStatus=new HashMap<String, Object>();
FeedBackStatus = restTemplateUserRegitration.exchange("http://localhost:8080/upload", HttpMethod.POST, new HttpEntity<MultiValueMap<String, Object>>(parameters, headers), Map.class).getBody();
return ResponseEntity.ok(FeedBackStatus);
}
因此,我所做的基本上是收集文件,重写它,然后转化为一个多值地图并发送给服务。
我想将多部分文件从一个服务传递到另一个服务。 客户- 当我将文件从Service1传递到Service2时,显示了一个错误“500内部服务器错误,当前请求不是多部分请求” 客户- 我想知道可能是什么原因,我想我错过了一些头部分时传递的多部分文件作为参数。 服务2 服务2客户端 服务1
问题内容: 我必须将数据(json对象)发送到另一个Web服务器(java)。 这是我的node.js代码 这是行不通的。我怎样才能做到这一点? 问题答案: 您正在重复请求,并为发布请求重新分配变量。我已经更新了您的代码并与requestb.in一起对其进行了测试 请将请求主机和代码中的路径更新为所需的值。让我知道它是否仍然对您不起作用。
我正在使用spring boot/Angular 6应用程序,我想将文件上载到服务器,我按照本教程上载了一个多部分文件:https://grokonez.com/spring-framework/spring-boot/angular-5-upload-get-multipartfile-to-from-spring-boot-server“。文件上载在应用程序的文件夹中,但现在我想使用URL将文
我有一个Web服务,它使用Spring Rest Controller(使用Netty而不是Apache Tomcat)处理GET/POST/PUT HTTP请求。我希望过滤我服务中的所有请求,当请求配置了特定的标头时,我希望将此特定请求发送到一个完全不同的URL,同时将响应返回到发送原始请求的相同实体。 这是我的代码: 在这个实现中,请求只是传递给我的普通rest控制器,而不会到达其他服务。我错
我有姜戈问题。我想将来自浏览器或django服务器上的业务逻辑的数据发送到另一个django服务器或只是同一服务器但不同端口来处理请求。我该怎么办?我试着用套接字来实现,但似乎不起作用。