首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用RHINO js引擎发出http请求

问使用RHINO js引擎发出http请求
EN

Stack Overflow用户
提问于 2014-03-04 05:33:07
回答 3查看 9.7K关注 0票数 6

我正在尝试使用Mozilla/Rhino js引擎在命令行中测试一些SOAP请求。但是,发出请求的常规对象(XMLHttpRequest、HttpRequest)似乎都不可用。为什么会这样呢?我可以导入库吗?

EN

回答 3

Stack Overflow用户

发布于 2015-05-27 23:59:40

我只用Rhino和下面的代码就能让它工作。

代码语言:javascript
复制
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();
票数 4
EN

Stack Overflow用户

发布于 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和它的答案。但是,除非你是一个受虐狂,否则我认为你会更快乐地选择不同的道路。

票数 0
EN

Stack Overflow用户

发布于 2014-12-23 22:54:43

我实际上能够使用Orchestrator 5.1和'Scriptable task‘对象与Zabbix API进行交互:

代码语言:javascript
复制
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;
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/22157910

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档