简体   繁体   English

org.springframework.web.client.HttpClientErrorException:400使用HttpEntity restTemplate.exchange的错误请求

[英]org.springframework.web.client.HttpClientErrorException: 400 Bad Request using HttpEntity restTemplate.exchange

I am getting HttpClientErrorException: 400 Bad Request when posting some data to client api. 将某些数据发布到客户端api时,我收到HttpClientErrorException:400错误的请求。

Exception stack trace: 异常堆栈跟踪:

org.springframework.web.client.HttpClientErrorException: 400 Bad Request
org.springframework.web.client.HttpClientErrorException: 400 Bad Request
        at org.springframework.web.client.DefaultResponseErrorHandler.handleError(DefaultResponseErrorHandler.java:91)
        at org.springframework.web.client.RestTemplate.handleResponse(RestTemplate.java:667)
        at org.springframework.web.client.RestTemplate.doExecute(RestTemplate.java:620)
        at org.springframework.web.client.RestTemplate.execute(RestTemplate.java:580)
        at org.springframework.web.client.RestTemplate.exchange(RestTemplate.java:498)

Code

Mode class 1: UserApiResponseBean.java 模式类别1:UserApiResponseBean.java

import java.util.List;

public class UserApiResponseBean {

    private String userCode;

    private String userName;

    private List<Department> DepartmentList;

    public String getUserCode() {
        return userCode;
    }

    public void setUserCode(String userCode) {
        this.userCode = userCode;
    }

    public String getUserName() {
        return userName;
    }

    public void setUserName(String userName) {
        this.userName = userName;
    }

    public List<Department> getDepartmentList() {
        return DepartmentList;
    }

    public void setDepartmentList(List<Department> departmentList) {
        DepartmentList = departmentList;
    }

}

Model Class 2: Department.java 模型类别2:Department.java

public class Department {

    private String departmentName;

    private String businessArea;

    public String getDepartmentName() {
        return departmentName;
    }

    public void setDepartmentName(String departmentName) {
        this.departmentName = departmentName;
    }

    public String getBusinessArea() {
        return businessArea;
    }

    public void setBusinessArea(String businessArea) {
        this.businessArea = businessArea;
    }

}

Client Code: Code piece calling client's api 客户端代码:调用客户端api的代码段

UserApiResponseBean userApiResponseBean = new UserApiResponseBean();
        userApiResponseBean.setUserName("userName1");
        userApiResponseBean.setUserCode("001");

        List<Department> departmentList = new ArrayList<Department>();

        Department departmanetData = new Department();
        departmanetData.setDepartmentName("Department 1");
        departmanetData.setBusinessArea("Business Area 1");

        departmentList.add(departmanetData);

        userApiResponseBean.setDepartmentList(departmentList);

        String userId="userId";
        String password="password";

        String url = "client api url";

        HttpHeaders requestHeader = new HttpHeaders();
        String encoding = Base64.getEncoder().encodeToString((userId + ":" + password).getBytes());
        requestHeader.add(HttpHeaders.AUTHORIZATION, "Basic " + encoding);
        requestHeader.setAccept(Arrays.asList(MediaType.APPLICATION_JSON));
        requestHeader.setContentType(MediaType.APPLICATION_JSON);

        HttpEntity<UserApiResponseBean> requestEntity = new HttpEntity<UserApiResponseBean>(userApiResponseBean, requestHeader);

        RestTemplate restTemplate = new RestTemplate();
        restTemplate.getMessageConverters().add(new MappingJackson2HttpMessageConverter());
        restTemplate.getMessageConverters().add(new StringHttpMessageConverter());

        ResponseEntity<String> responseEntity = restTemplate.exchange(url, HttpMethod.POST, requestEntity, String.class);
        String result = responseEntity.getBody();

Somehow request construction is getting corrupted. 不知何故,请求构造已损坏。 Can you please help. 你能帮忙吗? I do not have any json/xml related annotations in Model class, also there is no json/spring rest related data in spring-context.xml. 我在Model类中没有任何与json / xml相关的注释,在spring-context.xml中也没有与json / spring rest相关的数据。 Is that the problem ? 那是问题吗? We are using Spring 4.3.0 我们正在使用Spring 4.3.0

Client is expecting a json data, they do not have same UserApiResponseBean.java class on their side. 客户端期望一个json数据,它们没有相同的UserApiResponseBean.java类。

Just adding the converter name isn't enough. 仅添加转换器名称是不够的。 Make sure that Jackson2 is present in your classpath 确保您的类路径中存在Jackson2

Jackson 2.x – com.fasterxml.jackson.databind 杰克逊2.x – com.fasterxml.jackson.databind

If using Maven 如果使用Maven

<dependency>
    <groupId>com.fasterxml.jackson.core</groupId>
    <artifactId>jackson-databind</artifactId>
    <version>2.6.3</version>
</dependency>

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

相关问题 org.springframework.web.client.HttpClientErrorException:RestTemplate 中的 400 错误请求 - org.springframework.web.client.HttpClientErrorException: 400 Bad Request in RestTemplate RestTemplate.postForObject - 错误:org.springframework.web.client.HttpClientErrorException:400错误请求 - RestTemplate.postForObject - Error: org.springframework.web.client.HttpClientErrorException: 400 Bad Request org.springframework.web.client.HttpClientErrorException:400错误的请求 - org.springframework.web.client.HttpClientErrorException: 400 Bad Request org.springframework.web.client.HttpClientErrorException$BadRequest: 400 错误请求 - org.springframework.web.client.HttpClientErrorException$BadRequest: 400 Bad Request org.springframework.web.client.HttpClientErrorException: 400 错误的 PUT 请求 - org.springframework.web.client.HttpClientErrorException: 400 Bad Request for PUT org.springframework.web.client.HttpClientErrorException 400 RestTemplate.postForEntity - org.springframework.web.client.HttpClientErrorException 400 RestTemplate.postForEntity 如何修复错误org.springframework.web.client.HttpClientErrorException: 400 null,当使用RestTemplate访问微服务时 - How to fix the error org.springframework.web.client.HttpClientErrorException: 400 null, when using RestTemplate to access Microservice 我收到错误 org.springframework.web.client.HttpClientErrorException$BadRequest: 400 Bad Request - I am getting the Error org.springframework.web.client.HttpClientErrorException$BadRequest: 400 Bad Request org.springframework.web.client.HttpClientErrorException$BadRequest: 400 Bad Request binance - org.springframework.web.client.HttpClientErrorException$BadRequest: 400 Bad Request binance 我收到错误消息“ org.springframework.web.client.HttpClientErrorException $ BadRequest:400错误请求” - I'm getting error “org.springframework.web.client.HttpClientErrorException$BadRequest: 400 Bad Request”
 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM