2013-04-15 11 views
5

ich eine Datei über HTTPS in Io language zu holen versuchen:Io: Protokolls 'https' nicht unterstützte

url := URL with("https://api.example.com") 
url fetch println 

Und ich bekomme diese:

Error_0x7f97e1509a80: 
    location   = "/opt/local/lib/io/addons/Socket/io/URL.io:232" 
    message   = "Protocol 'https' unsupported" 

Ich habe versucht, etwas auf dem Netz zu finden aber, wie jeder weiß, ist es wegen des Namens nicht einfach. Ich habe nur diesen Thread http://tech.groups.yahoo.com/group/iolanguage/message/10898 gefunden, aber das ist ziemlich alt.

Wie bekomme ich die HTTPS-Unterstützung in Io?

EDIT

Ich habe festgestellt, dass es ein Secure Add-on ist ein Wrapper über OpenSSL, in Io Quelle. Es wurde nicht installiert, als ich auf meinem MacBook mit Mountain Lion tat. Ich habe versucht, es aus der Quelle zu bauen, aber kein Glück. Es hat auch nicht für mich auf einer Linux-Maschine gebaut.

EDIT2

Ich habe gerade versucht Io von der Quelle zu bauen (git clone https://github.com/stevedekorte/io.git) wieder (das mitgelieferte Skript build.sh) und es stellte sich heraus, dass Cmake OpenSSL tat erkennen:

-- Found OpenSSL: /usr/lib/libssl.dylib;/usr/lib/libcrypto.dylib 

Aber dann die SecureSocket-Addon wird nicht erstellt. Seine Readme-Datei: https://github.com/stevedekorte/io/tree/master/addons/SecureSocket sagt:

Die DTLS1 Bindungen nicht verwendbar sind, es sei denn, die Patches in dieser Datei auf OpenSSL 0.9.8e angewendet werden. Dieser Patch enthält jedoch eine Deaktivierung des Handshake-Neuübertragungscodes in d1_both.c, , was ihn für Produktionsumgebungen ungeeignet macht. Ich nehme keine Verantwortung, etc, etc. Wenn Sie es trotzdem verwenden möchten, wenden Sie die Patches (aus verschiedenen Newsgroups und meine eigenen Experimente gesammelt) und kommentieren Sie den auskommentierten Block von build.io. Für was es Wert ist, DTLS-Unterstützung in OpenSSL ist neu ab 0.9.8 und ist ziemlich buggy um mit zu beginnen. Es ist eine nette Idee, aber es scheint noch nicht die Produktion überhaupt bereit zu sein. Diese Bindungen sind keine Ausnahme.

+1

Welcher Teil hat etwas mit 'c' zu tun? – Sebivor

+0

Der gesamte Io-Interpreter ist in C geschrieben, einschließlich des SSL-Bindings-Moduls, das derzeit nicht erstellt wird. – piokuc

+1

Viele Dinge sind in C geschrieben. Ist es richtig zu fragen, wie man ein Word-Dokument hier öffnet, weil Microsoft Word in C geschrieben ist? Nein. * "Ich habe versucht, es aus der Quelle zu bauen, aber kein Glück. Es hat auch nicht für mich auf einer Linux-Maschine gebaut." * Seien Sie genau, oder wir werden Ihnen nicht helfen. Tatsächlich können wir dir * nicht helfen, wenn du nicht spezifisch sein willst. Was sind die Fehler, die beim Versuch auftreten zu bauen? Haben Sie die 'INSTALL'-Datei oder Readme-Dateien gelesen, die möglicherweise mit dem Quellcode geliefert wurden? Hast du einen Bug Tracker gepostet? Jetzt mit diesen Fragen bewaffnet, bitte aktualisieren Sie Ihre eigene Frage ... – Sebivor

Antwort

2

Wenn Sie nicht io bekommen, es zu tun die beste Wahl wäre ein externes Tool wie wget oder curl anrufen, die können und dann die Datei/Ergebnis lokal Laden oder über eine Leitung zurück.

+0

Vielen Dank für den Rat, aber es ist nicht genau das, was ich gehofft hatte ... – piokuc

0

Für alle anderen, die an einer anderen Problemumgehung interessiert sind, sollte es möglich sein, stud vor ein Io-Programm zu setzen, das die SSL-Sachen macht. Das habe ich selbst noch nicht getestet.

stud - Das Scalable TLS Auswickeln Daemon Stud ist ein Netzwerk-Proxy, der Verbindungen TLS/SSL beendet und leitet den unverschlüsselten Datenverkehr zu einige Backend. Es wurde entwickelt, um Zehntausende von Verbindungen effizient auf Multicore-Maschinen zu behandeln.

Verwandte Themen