将URLConnection转换为Nashorn中的HttpUrlConnection

Casting URLConnection to HttpUrlConnection in Nashorn

本文关键字:中的 HttpUrlConnection Nashorn URLConnection 转换      更新时间:2023-09-26

我有一些代码:

var Base64 = java.util.Base64;
var URL = java.net.URL;
var HttpURLConnection = java.net.HttpURLConnection;
var connectionAddress = new URL("http://twitter.com/");
var httpConnection = Java.to(
        connectionAddress.openConnection(),
        Java.type("java.net.HttpURLConnection")
    );

这引发了一个异常:类型错误:sun.netwww.protocol.http.HttpURLConnection:http://twitter.com/不是对象

有人知道该怎么处理吗?

Java.to用于将JavaScript对象转换为Java对象。目前,它支持转换为Java数组类型,以及java.util.Listjava.util.Deque。它不能用于在Java类型之间"转换",而且无论如何,它在动态语言中不是一个有意义的概念。您的openConnection()调用返回了一个类型为sun.net.www.protocol.http.HttpURLConnection的Java对象,这听起来像是已经是java.net.HttpURLConnection的子类了,所以只需编写就可以设置所有对象

var httpConnection = connectionAddress.openConnection();