我想用 Java 向 URL 发出 GET 请求,以便可以通过 TeaVM 将其转换为 Javascript。我知道我无法使用 java.net API,因为 TeaVM 不支持它。所以我尝试制作一个可以被 TeaVM 使用的 Javascript 函数。
@JSBody(params = { "url", "callback" }, script = "fetch(url)\n"
+ ".then(response => response.text())\n"
+ ".then(text => callback.complete(text))\n"
+ ".catch(error => callback.error(error.message));")
static native void fetch(String url, FetchCallback callback);
我的 Java 界面很简单:
public interface FetchCallback {
void complete(String result);
void error(String message);
}
当我运行安装 Maven 目标时,出现此错误:
[错误] 方法 org.example.Client.fetch(Ljava/lang/String;Lorg/example/Client$FetchCallback;)V 不是正确的本机 JavaScript 方法声明:其第二个参数的类型错误
不幸的是,我的 JS 知识非常有限(因此是 TeaVM),所以我无法理解这个错误消息。有人可以帮助我如何在 TeaVM 中发出 GET 请求吗?