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

如何在javax.ws.rs.core.中设置响应体

郎琪
2023-03-14

有一个需要实现的REST APIendpoint用于获取一些信息并将后端请求发送到另一个服务器,来自后端服务器的响应必须设置为最终响应。我的问题是如何在javax.ws.rs.core.响应中设置响应体?

@Path("analytics")
@GET
@Produces("application/json")
public Response getDeviceStats(@QueryParam("deviceType") String deviceType,
                               @QueryParam("deviceIdentifier") String deviceIdentifier,
                               @QueryParam("username") String user, @QueryParam("from") long from,
                               @QueryParam("to") long to) {

    // Trust own CA and all self-signed certs
    SSLContext sslcontext = null;
    try {
        sslcontext = SSLContexts.custom()
                .loadTrustMaterial(new File(getClientTrustStoretFilePath()), "password## Heading ##".toCharArray(),
                        new TrustSelfSignedStrategy())
                .build();
    } catch (NoSuchAlgorithmException e) {
        log.error(e);
    } catch (KeyManagementException e) {
        log.error(e);
    } catch (KeyStoreException e) {
        log.error(e);
    } catch (CertificateException e) {
        log.error(e);
    } catch (IOException e) {
        log.error(e);
    }
    SSLConnectionSocketFactory sslsf = new SSLConnectionSocketFactory(
            sslcontext,
            new String[] { "TLSv1" },
            null,
            SSLConnectionSocketFactory.getDefaultHostnameVerifier());
    CloseableHttpClient httpclient = HttpClients.custom()
            .setSSLSocketFactory(sslsf)
            .build();
    HttpResponse response = null;
    try {
        HttpGet httpget = new HttpGet(URL);
        httpget.setHeader("Authorization", "Basic YWRtaW46YWRtaW4=");
        httpget.addHeader("content-type", "application/json");
        response = httpclient.execute(httpget);
        String message = EntityUtils.toString(response.getEntity(), "UTF-8");
    } catch (ClientProtocolException e) {
        log.error(e);
    } catch (IOException e) {
        log.error(e);
    } 

}  

这里的消息是我需要设置的。但是我尝试了几种方法。没有一个奏效。

共有1个答案

乐正迪
2023-03-14

以下解决方案之一应该可以解决这个问题:

return Response.ok(entity).build();
return Response.ok().entity(entity).build();

有关更多详细信息,请查看ResponseResponse。ResponseBuilder课程文档。

提示:在响应中。ResponseBuilderAPI您可能会发现一些有用的方法,允许您向HTTP响应中添加与缓存、cookie和头相关的信息。

 类似资料:
  • 问题内容: 这是我的代码: 但是,当我从浏览器向服务器发出请求时,出现此错误: 我也尝试过这种方法,在请求之后设置响应头: 没有骰子。我犯了同样的错误。有没有一种方法可以只在route函数中设置响应头?这样的事情将是理想的: 但我还是找不到这样做。请帮忙。 编辑 如果我使用POST请求卷曲URL,如下所示: 我得到这个回应: 有任何想法吗? 问题答案: 你可以很容易地做到这一点: 查看和 但是有些

  • 我有一个无服务器API,它与无服务器框架版本1.25一起工作 由于安全原因,我想添加响应头。请帮助我如何通过serverless.yml文件设置下面的标题。出于安全考虑,有必要添加此标题吗? 内容-安全-策略:包括默认-src“自我” •严格的交通安全最大年龄=31536000;包括子域;预载 •X-Content-Type-Options:nosniff •X-XSS-保护:1 •缓存控制:最大

  • 这是我的代码: 但是,当我从浏览器向服务器发出请求时,会出现以下错误: 我也尝试过这种方法,在请求之后设置响应头: 没有骰子。我得到同样的错误。有没有办法只在路由函数中设置响应头?像这样的东西是理想的: 但是我无论如何也找不到这样做。请帮忙。 编辑 如果我卷曲的url与POST请求这样: 我得到的答复是: 有什么想法吗?

  • 在我的java项目中,我想提供一个下载word文件的函数。当我输出默认文件名时,大写的英文字符将自动转换为小写。我怎样才能解决这个问题。 我该怎么修好它?

  • 问题内容: 如何在axios中设置获取响应的状态? 问题答案: 您在这里遇到语法错误。你应该试试这个 这里有几件事要注意: 是一个异步函数,这意味着其余代码将被执行。当服务器的响应到达时,传递给的函数将被执行。的返回值称为承诺对象。您可以在此处了解更多信息 关键字根据调用的位置而具有不同的值。in 应该 引用构造函数对象,并且在函数内部调用时,它引用该对象。这就是为什么我分配给变量的原因。您可以在