当前位置: 首页 > 面试题库 >

如何使用Jersey客户端API在RESTful调用上添加标题

陆翔飞
2023-03-14
问题内容

这是RESTful调用的格式:

HEADERS:
    Content-Type: application/json;charset=UTF-8
    Authorization: Bearer Rc7JE8P7XUgSCPogjhdsVLMfITqQQrjg

REQUEST:
    GET https://api.example.com/1/realTime?json={"selection":{"includeAlerts":"true","selectionType":"registered","selectionMatch":"","isTheEvent":"true","includeRuntime":"true"}}

这是我的代码:

                try
                {
                 Client client = Client.create();
                 WebResource webResource = 
                         client.resource("https://api.example.com/1/realTime?json=
                         {"selection":{"includeAlerts":"true","selectionType":"registered","selectionMatch":"","isTheEvent":"true","includeRuntime":"true"}}");

                 //add header:Content-Type: application/json;charset=UTF-8
                 webResource.setProperty("Content-Type", "application/json;charset=UTF-8");

                 //add header: Authorization Bearer Rc7JE8P7XUgSCPogsdfdLMfITqQQrjg
                 value = "Bearer " + value;
                 webResource.setProperty("Authorization", value);

                 MultivaluedMap<String, String> queryParams = new MultivaluedMapImpl();
                 queryParams.add("json", js);

                 //Get response from RESTful Server
                 jsonStr = webResource.get(String.class);
                 System.out.println("Testing:");
                 System.out.println(jsonStr);

                }
                catch (Exception e)
                {
                  System.out.println (e.getMessage());
                  e.printStackTrace();
                  System.exit(0);
                }

但它返回错误

com.sun.jersey.api.client.UniformInterfaceException: GET https://api.example.com/1/realTime? returned a response status of 500
    at com.sun.jersey.api.client.WebResource.handle(WebResource.java:607)
    at com.sun.jersey.api.client.WebResource.get(WebResource.java:187)
    at net.yorkland.restful.GetThermostatlist.GetThermostats(GetThermostatlist.java:60)

我想我没有正确添加标题。

有人可以帮我解决吗?请给我建议,如何根据要求添加标题。

谢谢


问题答案:

我认为您正在寻找header(name,value)方法。看到WebResource.header(String, Object)

注意,尽管它返回一个Builder,所以您需要将输出保存在webResource var中。



 类似资料:
  • 我已经按照创建新应用程序所需的步骤进行了操作,并获得了使用者密钥、密钥对以及令牌访问详细信息。现在,我想使用chrome Postman客户端调用Twitter Rest API。 我应该如何将客户密钥、机密、令牌等详细信息传递给请求?我尝试过将它们作为标头传递,也尝试过通过在postman客户端中选择OAuth1.0选项来传递它们,但我遇到了错误:

  • 本文向大家介绍详解如何使用Jersey客户端请求Spring Boot(RESTFul)服务,包括了详解如何使用Jersey客户端请求Spring Boot(RESTFul)服务的使用技巧和注意事项,需要的朋友参考一下 本文介绍了使用Jersey客户端请求Spring Boot(RESTFul)服务,分享给大家,具体如下: Jersey客户端获取Client对象实例封装: 请求Spring Boo

  • DropWizard在REST的引擎盖下使用泽西。我正在尝试弄清楚如何为我的DropWizard应用程序将公开的RESTfulendpoint编写客户端。 为了这个例子,让我们假设我的DropWizard应用程序有一个< code>CarResource,它为CRUDding cars公开了几个简单的RESTfulendpoint: 因此,我认为结构化的API客户端将类似于: 但是我能找到的关于D

  • 我有一个RESTful服务在Java14SpringBoot微服务上运行。我从运行在Java 7应用程序上的客户机调用这个。 我有一个调用api的RESful客户端。当我从test方法调用它时,它成功工作,我得到了预期的结果,客户端和服务器上没有错误。 问题 当我在JBoss中启动Java7(Struts)应用程序,并通过同一个RESTful客户端调用api时,我收到了错误。 在 Java 14

  • 我使用的是一个PHP RESTful API,它由使用jersey 2.21的Java桌面应用程序使用。

  • 问题内容: 如何使用Jersey客户端API将GET请求发送到运行HTTPS协议的服务器。我可以使用任何示例代码吗? 问题答案: 这样构建您的客户 从此博客文章中窃取了更多详细信息:http : //blogs.oracle.com/enterprisetechtips/entry/consumption_restful_web_services_with 有关设置证书的信息,请参见以下已很好回答