我正在尝试通过Io language中的HTTPS获取文件:
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说:
除非此文件中的修补程序是,否则DTLS1绑定不可用 适用于OpenSSL 0.9.8e。但是,这个补丁包括一个 在d1_both.c中取消激活重新传输代码, 使其不适合生产环境。我不接受 责任等等。如果你想使用它,请申请 补丁(从各种新闻组和我自己的实验中收集) 并取消注释build.io的注释掉的块。对于它是什么 值得一提的是,OpenSSL中的DTLS支持是从0.9.8开始的新功能,并且非常有缺陷 首先。这是个好主意,但似乎并不是这样 生产准备好了。这些绑定也不例外。
答案 0 :(得分:2)
如果你不能让它做到这一点你最好的选择就是调用wget
或curl
之类的外部工具,然后在本地加载文件/结果或通过管道返回
答案 1 :(得分:0)
对于其他对另一种解决方法感兴趣的人,应该可以将stud放在将执行SSL操作的Io程序之前。我还没有测试过。
stud - 可扩展的TLS Unwrapping Daemon stud是一个网络代理 终止TLS / SSL连接并转发未加密的流量 一些后端。它旨在处理数以万计的连接 有效地在多核机器上。