有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

java无法使用与postman应用程序中相同的restTemplate发送请求

我有一个http模板,可以从Postman获得:

enter image description here

为了使用java代码执行相同的请求,我编写了以下代码:

LinkedMultiValueMap<String, Object> map = new LinkedMultiValueMap<>();
exchange.getIn().getHeader(Exchange.FILE_NAME_ONLY, String.class);
map.add("file", new File("filePath");
int lastIndexOfDot = fileName.lastIndexOf(".");
map.add("type", fileName.substring(lastIndexOfDot + 1));
map.add("org_id", systemSettingsService.getSystemSettings().getOrganizationId());
map.add("stone_id", fileName.substring(0, lastIndexOfDot));

HttpHeaders headers = new HttpHeaders();
headers.setContentType(MediaType.MULTIPART_FORM_DATA);
HttpEntity<LinkedMultiValueMap<String, Object>> requestEntity = new HttpEntity<>( map, headers);

restTemplate = new RestTemplate();                     
try {
    ResponseEntity<String> result = restTemplate.exchange(buildUrl(), HttpMethod.POST, requestEntity, String.class);
    logger.info("result {}", result);
 } catch (Exception e) {
     logger.error("Error", e);
 }

在日志中我看到:

org.springframework.web.client.HttpClientErrorException: 400 BAD REQUEST
    at org.springframework.web.client.DefaultResponseErrorHandler.handleError(DefaultResponseErrorHandler.java:78)
    at org.springframework.web.client.RestTemplate.handleResponse(RestTemplate.java:700)
    at org.springframework.web.client.RestTemplate.doExecute(RestTemplate.java:653)
    at org.springframework.web.client.RestTemplate.execute(RestTemplate.java:613)
    at org.springframework.web.client.RestTemplate.exchange(RestTemplate.java:531)

我使用Fiddler监视请求,但我只能监视来自邮递员的请求

它看起来像这样(标题):

enter image description here

原始:

enter image description here

如何更正我的java代码,使请求与邮递员中的请求相同

附言

我对http属性使用与postman中相同的值


共 (0) 个答案