Io:协议'https'不受支持

时间:2013-04-15 23:10:48

标签: ssl binding openssl cmake iolanguage

我正在尝试通过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开始的新功能,并且非常有缺陷   首先。这是个好主意,但似乎并不是这样   生产准备好了。这些绑定也不例外。

2 个答案:

答案 0 :(得分:2)

如果你不能让它做到这一点你最好的选择就是调用wgetcurl之类的外部工具,然后在本地加载文件/结果或通过管道返回

答案 1 :(得分:0)

对于其他对另一种解决方法感兴趣的人,应该可以将stud放在将执行SSL操作的Io程序之前。我还没有测试过。

  

stud - 可扩展的TLS Unwrapping Daemon stud是一个网络代理   终止TLS / SSL连接并转发未加密的流量   一些后端。它旨在处理数以万计的连接   有效地在多核机器上。

相关问题