在Qt

时间:2016-07-08 10:04:46

标签: javascript android c++ qt http

我正在寻找一种使用Javascript代码执行原始POST / GET HTTP请求的方法,并在Android和桌面Linux上的Qt C ++应用程序中执行此脚本,当然,也可以在C ++应用程序中接收结果。 / p>

这是我需要的功能的示例代码段,适用于Web浏览器和phantomjs:

var xhr = new XMLHttpRequest();
xhr.open("POST", "https://example.com/foo", false);
var datatype = "application/x-www-form-urlencoded; charset=UTF-8";
var data = "baz";
xhr.setRequestHeader("Content-Type", datatype);
xhr.send(data);
var some_object = JSON.parse(xhr.responseText);
var quintessence = do_something(some_object);
xhr.open("GET", "https://example.com/bar", false);
xhr.setRequestHeader("foo", quintessence);
xhr.send(null);
var result = JSON.parse(xhr.responseText);

我使用的XMLHttpRequest类非常容易使用,但不是标准JS的一部分,所以我真的不能指望它只是在那里。我并不想以不同的方式做到这一点,但是一件容易的事情会很好。此外,请求必须是同步的,因为数据的后处理是主要目标。

我想像J8这样具有JIT功能的Javascript实现至少可以在所有平台上执行Javascript代码,但这并不是开箱即用的HTTP请求类。

执行部分可以在Android和桌面上以不同方式完成,但是同一段代码应始终在两个平台上都可执行并执行相同操作(或者我必须以某种方式人为地减少允许的语法)。

似乎Android的WebView不是一个选项,因为它需要一个上下文,因此无法在后台运行。

有人知道怎么做吗?

PS:对于无头浏览的一些功能(更像是Java的HtmlUnit的命令式方法,更像是phantomjs的功能方法)将通过Javascript非常感激,但根本不需要。

0 个答案:

没有答案