当前位置: 首页 > 知识库问答 >
问题:

HttpClientErrorException$BadRequest:服务返回[]时出现400个BAD REQUEST

翟曦之
2023-03-14

我正在运行一个服务,当它返回一些entidade时,它工作得很好。但是当它找不到任何文件时,我会得到以下错误:

org.springframework.web.client。HttpClientErrorException$BadRequest:400个错误请求:[{“entidades”:[],“saida”:“”rua bandeirantes,1578-bairro:cent…(19970字节)],位于org.springframework.web.client.Http客户端错误异常.create(Http客户机错误异常.java:101),位于org.Springfra框.web.cclient.DefaultResponseErrorHandler.handleError(DefaultResposeErrorhandler.java:186)位于org.springframework.web.client.DefaultResponseErrorHandler.handleError(DefaultRespenseErorHandler.java:125org.springframework.web.client.RestTemplate.execute(RestTempplate.java:710)位于br.mp.mpf.cened01.cargaIaRJ.RJServico.executarServico(RJServico.java:953)位于br.mip.mpf.coned01.cargaIaRJ.RJServisico.executarServico Co.executarComPaginacao公司位于org.springframework.boot.SpringApplication.run的br.mp.mpf.cened01.cargaIaRJ.RJApplication.lambda$0(RJAppression.java:52)位于org.s普林framework.boot.Spring应用程序.callRunner(SpringApplication.java:804(SpringApplication.java:1311),网址为org.springframework.boot.SpringApplication.run(SpringApplication.java:1300),网址:br.mp.mpf.cened01.cargaIaRJ.RJApplication.main(RJApplication.java:29),网址sun.reflect.NativeMethodAccessorImpl。在org.springframework.boot.devtools.restart.RestartLauncher.run(RestartLauncher.java:49)的sun.reflect.NativeMethodAccessorImpl.invoke(NativeMet方法)的sun.reflect.NativeMethodAccess的invoke0(本机方法)

    private RetornoServicoDto executarServico(String sentenca) 
            throws Exception {
        RetornoServicoDto retornoServico = new RetornoServicoDto();

        final String sentencaOri = sentenca;
        RestTemplate restTemplate = new RestTemplate();
       final Iterator<HttpMessageConverter<?>> iterator = restTemplate.getMessageConverters().iterator();
       while (iterator.hasNext()) {
        final HttpMessageConverter<?> converter = iterator.next();
          if (converter instanceof StringHttpMessageConverter) {
            iterator.remove();
          }       
       }
       restTemplate.getMessageConverters().add(0, new StringHttpMessageConverter(Charset.forName("UTF-8")));

        try {         
            ResponseEntity<RetornoServicoDto> responseEntity = 
                    restTemplate.postForEntity(Constantes.SERVICO_URL,
                            sentencaOri, RetornoServicoDto.class);

            retornoServico = responseEntity.getBody();
            
        } catch (Exception e) {
            e.printStackTrace();
        }

        return retornoServico;
    }  

@Data
public class RetornoServicoDto {    
    private List<EntidadeDto> entidades; 
    private String saida;
    private String status;  
} 

@Data
public class EntidadeDto {
    private String entidade;
    private int id;
    private PosicaoDto posicao;
    private String texto;
} 

即使实体列表返回[],该怎么做才能正常工作?

共有1个答案

怀飞扬
2023-03-14

根据我从你的日志中看到的,你的响应对象以“[{…”开头,所以可能你的服务器端正在返回一个RetornoServicoDto列表,而不是你请求的单个对象,因为你的问题是一个糟糕的请求,如果能看到处理请求的服务端更好地理解,那就太好了。

 类似资料:
  • 基本上,我想做一个POST请求与以下主体: 为什么会这样?

  • 我有两个微服务。第一个接收来自前端的调用,然后调用第二个uService以接收一些数据。最后一个是返回错误响应(错误请求,这是可以的--这是一个用例)。但是,我丢失了从第二个微服务返回的正文(消息),因为第一个微服务在调用中抛出了HttpClientErrorException 400 null 这是我的代码: 因此,我希望在调用的uservice中获得发送的响应消息来管理它。 提前谢了。

  • 我使用一个自定义JsonConverter与System.Text.Json为了有DateTime与所需的时区 我在中这样注册它 就像您在代码中看到的那样,当收到没有时区的日期时,它将崩溃并出现异常,这将导致错误500 InternalServerError 我如何抛出异常以返回400而不触碰使用应用程序。UseExceptionHandler(因为代码在我的库中)? 请注意,引发的异常是Form

  • 问题内容: 我正打算实施GCM。我编写了一个测试代码以了解其工作原理,但在响应中不断出现错误400。 我正在用Java(JDK 7)编写。 在这个主题上,我遵循了这一原则。我在那里修改了给定的代码,并将ObjectMapper的用法更改为Gson。 这是我对数据对象的代码: *我在服务器参考中看到,在HTTP协议中,我可以只发送带有registration_ids的消息。(所有其他均为可选) 这是

  • 问题内容: 我有这个应用程序,它可以在本地运行,并且在部署时可以使用.mdf SQL Express数据库文件(通常用于测试目的)。但是,当我将其更改为可与我们的SQL Server 2008一起使用时,该应用程序可以运行,但该服务无法运行。 例如,如果在页面后面的代码中,我有一个按钮可以向表中添加数据,例如: 我的web.config设置为在该服务器上使用模拟,并且一切运行良好。但是,对于我的服

  • 我有以下Rest服务API来更新“朋友”数据集: 当我尝试将更新的对象“朋友”通过使用Spring restTemboard这样: 我得到一个HTTP 400 BadRequest错误。 我不知道为什么会这样。你有什么建议吗?