我正在尝试通过 HTTPS 在 Io language 中获取文件:
url := URL with("https://api.example.com")
url fetch println
我明白了:
Error_0x7f97e1509a80:
location = "/opt/local/lib/io/addons/Socket/io/URL.io:232"
message = "Protocol 'https' unsupported"
我试图在网上找到一些东西,但是,众所周知,这并不容易,因为名字。我只找到这个线程 http://tech.groups.yahoo.com/group/iolanguage/message/10898但那已经很老了。
如何在 Io 中获得 HTTPS 支持?
编辑
我发现在 Io 的源代码中有一个 SecureSocket 插件,一个 OpenSSL 的包装器。不过,当我在装有 Mountain Lion 的 MacBook 上执行 sudo port io install
时,它并没有安装。我尝试从源代码构建它,但没有运气。它也不是在 Linux 机器上为我构建的。
EDIT2
我只是尝试再次从源代码 (git clone https://github.com/stevedekorte/io.git
) 构建 Io(使用包含的脚本 build.sh
) 事实证明 cmake 确实检测到了 OpenSSL:
-- Found OpenSSL: /usr/lib/libssl.dylib;/usr/lib/libcrypto.dylib
但是没有构建 SecureSocket 插件。它的自述文件:https://github.com/stevedekorte/io/tree/master/addons/SecureSocket说:
The DTLS1 bindings are not usable unless the patches in this file are applied to OpenSSL 0.9.8e. However, this patch includes a deactivation of the handshake retransmission code in d1_both.c, making it unsuitable for production environments. I take no responsibility, etc, etc. If you want to use it anyway, apply the patches(gathered from various newsgroups and my own experimentation) and uncomment the commented-out block of build.io. For what it's worth, DTLS support in OpenSSL is new as of 0.9.8 and is pretty buggy to begin with. It's a nice idea, but it doesn't seem to be production ready at all yet. These bindings are no exception.
最佳答案
如果您不能让 io 执行此操作,您最好的选择是调用外部工具,例如 wget
或 curl
,然后在本地加载文件/结果或通过管道返回。
关于ssl - IO : Protocol 'https' unsupported,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16026140/