我正在尝试使用Mozilla/Rhino js引擎在命令行中测试一些SOAP请求。但是,发出请求的常规对象(XMLHttpRequest、HttpRequest)似乎都不可用。为什么会这样呢?我可以导入库吗?
发布于 2015-05-27 23:59:40
我只用Rhino和下面的代码就能让它工作。
var post = new org.apache.commons.httpclient.methods.PostMethod("https://someurl/and/path/");
var client = new org.apache.commons.httpclient.HttpClient();
// ---- Authentication ---- //
var creds = new org.apache.commons.httpclient.UsernamePasswordCredentials("username", "password");
client.getParams().setAuthenticationPreemptive(true);
client.getState().setCredentials(org.apache.commons.httpclient.auth.AuthScope.ANY, creds);
// -------------------------- //
post.setRequestHeader("Content-type", "application/xml");
post.setRequestEntity(new org.apache.commons.httpclient.methods.StringRequestEntity(buildXML(), "text/plain", "ASCII" ));
var status = client.executeMethod(post);
var br = new java.io.BufferedReader(new java.io.InputStreamReader(post.getResponseBodyAsStream()));
var response = "";
var line = br.readLine();
while(line != null){
response = response + line;
line = br.readLine();
}
post.releaseConnection();发布于 2014-03-04 05:50:33
您可能会找到要导入的库,也可以用Java编写自己的库,并使它们可用于rhino实例,这取决于您使用它的方式。请记住,Rhino只是一个Javascript语言引擎。它没有DOM,可以说它本身并不是“web感知”的。
但是,由于您这样做听起来像是为了测试/实验目的,而且您可能不需要重新发明轮子来执行此操作,因此我强烈建议您直接下载Node.js并查看request module (用于发出HTTP请求)或any of the various SOAP modules。
你可以用Node.js做更多的事情,但你也可以将它用作Javascript文件的一个非常简单的运行器。不管怎样,你应该远离Rhino。它真的很旧,不再被真正支持,特别是现在有了JDK8,甚至连javax.script的支持都将切换到Nashorn引擎。
更新:如果你真的想尝试一下(如果你准备尝试一下),你可以看看this SO question和它的答案。但是,除非你是一个受虐狂,否则我认为你会更快乐地选择不同的道路。
发布于 2014-12-23 22:54:43
我实际上能够使用Orchestrator 5.1和'Scriptable task‘对象与Zabbix API进行交互:
var urlObject = new URL(url);
var jsonString = JSON.stringify({ jsonrpc: '2.0', method: 'user.login', params: { user: 'username', password: 'password' }, id: 1 });
urlObject.contentType = "application/json";
result = urlObject.postContent(jsonString);
System.log(result);
var authenticationToken = JSON.parse(result).result;https://stackoverflow.com/questions/22157910
复制相似问题