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

SpringRest服务不返回车身

郜俊晤
2023-03-14

我有一个rest服务,实现如下-

    @RequestMapping(method = RequestMethod.GET, consumes = MediaType.APPLICATION_JSON_VALUE)
    @ResponseBody
    @JsonSerialize
    public ResponseEntity<String> handleData(HttpMethod method, HttpServletRequest httpRequest)
            throws URISyntaxException, IOException {

        BackendRequest request = new BackendRequest();
        request.setHttpRequest(httpRequest);
        request.setMethod(method);

        BackendResponse backendResponse = service.getresponse(request);
        ResponseEntity<String> response = backendResponse.getResponse();
        return new ResponseEntity<String>(response.getBody(), response.getHeaders(), response.getStatusCode());
        // return response;

    }

我得到了所有的头和响应状态正确,但我没有得到json响应。这里怎么了?

public BackendResponse callBackend(BackendRequest request) throws URISyntaxException, IOException {

        String body = null;
        ResponseEntity<String> responseEntity = null;
        URI uri = new URI("http", null, "localhost", 8080, request.getRequestURL(), request.getQueryString(), null);

        MultiValueMap<String, String> requestHeaders = getHeadersInfo(request.getHttpRequest());

        if (HttpMethod.POST.equals(request.getMethod())) {
            body = request.getHttpRequest().getReader().lines().collect(Collectors.joining(System.lineSeparator()));
            responseEntity = restTemplate.exchange(uri, request.getMethod(),
                    new HttpEntity<String>(body, requestHeaders), String.class);

        } else if (HttpMethod.GET.equals(request.getMethod())) {
            responseEntity = restTemplate.exchange(uri, request.getMethod(),
                    new HttpEntity<String>(body, requestHeaders), String.class);
        } else {
            LOG.warn("Method:{} not supported yet", request.getMethod());
        }

        BackendResponse response = new BackendResponse();
        response.setResponse(responseEntity);
        return response;

    }

共有1个答案

端木阳荣
2023-03-14

backendResponse backendResponse=service.getresponse(request)可能是问题所在。你能发布方法的内容吗?

 类似资料:
  • 我正在开发具有REST后端的GWT应用程序。此外,我正在使用RESTEasy和RestyGWT库。 现在,我已经在服务器端创建了永久cookie,并将其返回到客户端(我可以看到它存储在浏览器cookie列表中),但当我创建新的REST调用时,cookie不会发送到服务器。我已经和firebug核实过了。然而,JSESSIONID是双向发送的,没有问题。我假设这是隐式完成的,但我还需要做些什么吗?

  • 我们使用Google Cloud Bigtable,使用Go库从GCE实例访问它。对于某些ReadRow查询,我们会收到以下错误: 值得注意的是,这些是一致的。换句话说,如果我们重试同一个查询(我们在两次尝试之间等待约15分钟),我们(几乎?)总是再次出现相同的错误。因此,这似乎不是一个简单的瞬时错误,而是可能与正在获取的数据有某种关系。下面是我们正在运行的特定查询: 这是否意味着“你想赚太多”?

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

  • 什么会阻止 命令完成?它永远不会返回到命令提示符或报告任何类型的错误。相反,它反复在“新”,“已分配”,“就绪”和“开始”之间切换。 这是命令: 这是来自“DevOps 2.1工具包 - Docker群”,维克多·法西奇的一本书,我遇到了一个我无法克服的问题...... 我试图在一群三个节点上运行一个反向代理服务,所有节点都在LinuxMint系统上本地运行,而< code>docker serv

  • 我正在测试SpringREST服务,特别是POST方法 以下是我的控制器的代码片段: 员工类别: 我在pom.xml中也包含了jackson库的依赖 pom.xml 当我提交请求时,我的状态为:415不支持的媒体类型 这是我收到的错误消息:服务器拒绝了此请求,因为请求实体的格式不受请求方法的请求资源的支持。 请说明我做错了什么?

  • 问题内容: 我需要我的Web服务以返回JSON … 我的.asmx文件中包含以下代码: 返回以下内容: 如何强制它返回JSON而不是XML? 问题答案: 您的Web服务定义看起来正确。确保通过帖子调用服务,并记住该键将“内容类型”标头指定为。 (这是使用jQuery,但如果您愿意,可以使用低级JavaScript)