我最近遇到了一个有趣的问题。 我试图通过使用集成的REST API来访问sametime。为此,我想准备一个为我进行查找和数据连接的XAgent。
连接到Sametimeserver的前两个步骤完全正常,但我的最后一步有问题。无论我做什么,我都无法设置GET请求的标头。我尝试了其他字段然后下面提到的一个,但看起来它没有设置标题。
任何人都知道为什么在SSJS中设置标题不起作用?
var url = new java.net.URL("http://oursametimeserver/stwebapi/RTCServlet?"+sid);
conn= url.openConnection();
conn.setRequestProperty("Rtc4web-Nonce",pid);
conn.setRequestMethod("GET");
writer.write(@Implode(conn.getHeaderFields()));
请查看结果:
{null = [HTTP / 1.1 400 Bad Request],Cache-Control = [no-cache =" set-cookie,set-cookie2"],Expires = [Thu,01 Dec 1994 16: 00:00 GMT],X-Powered-By = [Servlet / 3.0],Content-Length = [170],Content-Language = [en-US],Content-Type = [application / json],Connection = [Close ],日期= [星期一,2015年3月9日19:18:54 GMT],Set-Cookie = [JSESSIONID = 0000zwXn8VhNWlZ78jN4yfMJQrU:-1;路径= /;仅Http]}
请忽略错误400.其余的api返回它,因为我没有在标题中提交RTC4WEB-NONCE字段。当我在chrome中使用POSTMAN时,我得到相同的结果。一切都很好。
答案 0 :(得分:1)
您需要稍微改变一下方法:
1)编写一个小型Java类,它包含对Java对象的所有调用,因此您可以使用简单的JS调用来调用该对象。它将"映射一个无类型的js变量映射到一个类型化的Java方法"猜测出了图片
2)不要使用HttpUrlConnection类。使用既可用的ApacheHttp客户端又具有设置标头的方法 - 或者使用具有就绪函数连接到Sametime的社交业务工具包