0

我最近遇到了一个有趣的问题。我正在尝试使用集成的 REST API 访问同一时间。为此,我想准备一个 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],Date=[Mon, 09 2015 年 3 月 19:18:54 GMT],Set-Cookie=[JSESSIONID=0000zwXn8VhNWlZ78jN4yfMJQrU:-1; 路径=/; HttpOnly]}

请忽略错误 400。其余 api 将返回它,因为我没有在标题中提交 RTC4WEB-NONCE 字段。当我在 chrome 中使用 POSTMAN 时,我得到了相同的结果。有了这个值,一切都很好。

4

1 回答 1

1

你需要稍微改变你的方法:

1) 编写一个小型 Java 类,它封装了对 Java 对象的所有调用,因此您可以通过简单的 JS 调用来调用该类。它将“将无类型的 js 变量映射到有类型的 Java 方法”的猜测排除在外

2) 不要使用 HttpUrlConnection 类。要么使用既可用又具有设置标头的方法的 ApacheHttp 客户端 - 或使用具有现成功能的社交业务工具包连接到 Sametime

于 2015-03-09T22:06:19.170 回答