IBM Worklight HTTP适配器是否发送/支持发送用户代理标头?

问题描述:

当使用WL.Server.invokeHttp调用后端服务时,IBM Worklight HTTP适配器(6.1版)默认发送用户代理标头吗?它的价值是什么?假设答案是否定的,我们可以添加一个吗?IBM Worklight HTTP适配器是否发送/支持发送用户代理标头?

+0

Andrew,如果我的答案在下面帮助您解决了您的问题,请将其标记为已答复。 – 2014-09-06 15:08:28

+0

伊丹,谢谢,但我希望的是实际的标题值本身:)一旦我有机会尝试这一点,我会添加作为答案。 – 2014-09-08 08:44:10

当您调用适配器过程时,可以使用Wireshark等工具检查网络。在那里您会看到发送了User-Agent头。该头由底层的Apache HTTPClient自动添加。

也就是说,您可以添加自己的标题。 Per the user documentation for WL.Server.invokeHttp

Parameters: 
options - The invokeHttp function accepts the following JSON block of parameters: 
... 
... 
... 
headers. Optional. Defines the headers for the HTTP request. 

例如:

var input = { 
     method : 'get', 
     headers: {foo: 'bar'}, 
     path : '/mypath' 
}; 
return WL.Server.invokeHttp(input); 

至于它的价值,它可能不会对你有任何价值。这只是标准的一部分。
在这里看到更多(或谷歌的其他信息):HTTP request header: UserAgent variable

在适配器就可以得到用户代理客户端发送这样的:

var clientRequest = WL.Server.getClientRequest(); 
var userAgent = clientRequest.getHeader("User-Agent"); 

然后,如果您想一起传递这个头到后端服务:

var input = { 
    method :'get', 
    path : 'your/path', 
    headers: { 
     "User-Agent" : userAgent, 
    } 
}; 

var result=WL.Server.invokeHttp(input);