如何使用 Jersey 客户端 API 在 RESTful 调用中添加标头 [英] How to add Headers on RESTful call using Jersey Client API
本文介绍了如何使用 Jersey 客户端 API 在 RESTful 调用中添加标头的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
这是 RESTful 调用的格式:
Here is the Format for RESTful call:
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)
我想我没有正确添加标题.
I think I didn't add headers correctly.
有人可以帮我解决吗?请给我建议如何根据要求添加标题.
Can someone help me to fix it? Please give me advice how to add headers on request.
谢谢
推荐答案
我认为您正在寻找 header(name,value) 方法.见 WebResource.header(String, Object)
I think you're looking for header(name,value) method. See WebResource.header(String, Object)
请注意,它返回一个 Builder,因此您需要将输出保存在您的 webResource 变量中.
Note it returns a Builder though, so you need to save the output in your webResource var.
这篇关于如何使用 Jersey 客户端 API 在 RESTful 调用中添加标头的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文