我见过类似的问题,但不一样。 我有一个发送 get 和 post 请求的 java 应用程序。现在的问题是请求需要有一个 CSRTF TOKEN,我无法从 ReasteastClient.getcookies 方法中获取该 TOKEN,因此我编写了一段 JavaScript 代码来获取此 token 。我正在尝试从我的 java 应用程序生成 JavaScript 代码并获取函数响应。
有什么办法可以做到吗? 谢谢大家。
请您参考如下方法:
要在 Java 中生成 JavaScript 代码,您需要执行以下步骤
1.创建 JavaScript 文件并添加检索 CSRTF TOKEN 的函数
通过添加功能:
$.get('CSRFTokenManager.do', function(data) {
var send = XMLHttpRequest.prototype.send,
token =data;
document.cookie='X-CSRF-Token='+token;
XMLHttpRequest.prototype.send = function(data) {
this.setRequestHeader('X-CSRF-Token',token);
//dojo.cookie("X-CSRF-Token", "");
return send.apply(this, arguments);
};
});
2.将其保存为 Jsfunctions.js 并在您的 Java 代码中使用它,如下所示。
ScriptEngineManager manager = new ScriptEngineManager();
ScriptEngine engine = manager.getEngineByName("JavaScript");
// read script file
engine.eval(Files.newBufferedReader(Paths.get("C:/Scripts/Jsfunctions.js"),
StandardCharsets.UTF_8));
Invocable inv = (Invocable) engine;
// call function from script file
inv.invokeFunction("yourFunction", "param");
希望这有帮助..!