2011-01-05 7 views
1

Ich versuche, die folgende Anfrage mit TCL (OpenACS) zu tunProblem eine HTTPS mit TCL anfordernden

http::register https 443 tls::socket 

set url "https://encrypted.google.com" 

set token [http::geturl $url -timeout 30000] 

set status [http::status $token] 
set answer [http::data $token] 

http::cleanup $token 
http::unregister https 

Das Problem ist, dass, wenn ich die $ Statusvariablen lesen I "eof" und die $ Antwort bekommen Variable wird leer. Ich habe versucht, tls V.1

http::register https 443 [list tls::socket -tls1 1] 

und es funktioniert nur für die Website https://www.galileo.edu, aber nicht für https://encrypted.google.com ermöglicht.

Die Website, die ich versuche zu verbinden, ist https://graph.facebook.com/me/feed?access_token= ... aber es funktioniert nicht.

Ich verwendete curl, um den Inhalt der Seiten in HTTPS abzurufen, und es funktioniert, ich habe OpenSSL installiert, damit ich das Problem nicht sehen kann, gibt es eine andere Möglichkeit, HTTPS-Verbindungen mit TCL zu tun ?.

Ich kann nicht sehen, ob das ein Problem der Codierung ist (vielleicht bin ich falsch registriert das https-Protokoll) oder vielleicht Es ist eine schlechte Konfiguration meines Servers. Hoffe jemand hilft !! Vielen Dank!

+0

Ich habe den Code in anderen Servern getestet und es funktioniert gut, ich denke, das ist eine schlechte Konfiguration des Servers. – javiertoledos

Antwort

2

Hmm, ich kann das nicht reproduzieren. Welchen Patchlevel von Tcl verwendest du und welche Version des Tls-Pakets?

Ich habe diese:

package require http 
package require tls 

# This is your code, cut-n-pasted with blank lines removed 
http::register https 443 tls::socket 
set url "https://encrypted.google.com" 
set token [http::geturl $url -timeout 30000] 
set status [http::status $token] 
set answer [http::data $token] 
http::cleanup $token 
http::unregister https 

puts $status 

Und es produziert „ok“ als Ausgabe mit $status ‚s Inhalt wahrscheinlich zu suchen (aber zu lange hier einfügen). Dies ist mit Tcl 8.5.2 (ich weiß, ich muss upgraden), http 2.7 und tls 1.6.

+0

Meine Version von TCL ist 8.5.6, http 2.7 aber die TLS ist 1.5 Ich denke, ich muss das Tls-Paket zu aktualisieren, danke für Ihre Hilfe !!! – javiertoledos