Проблема запроса HTTPS с TCL - PullRequest
3 голосов
/ 05 января 2011

Я пытаюсь выполнить следующий запрос, используя TCL (OpenACS)

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

Проблема в том, что когда я читаю переменную $ status, я получаю «eof», и переменная $ answer становится пустой.Я попытался включить tls V.1

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

, и он работает только для сайта https://www.galileo.edu,, но не для https://encrypted.google.com.

сайта, к которому я пытаюсь подключитьсяhttps://graph.facebook.com/me/feed?access_token=..., но он не работает.

Я использовал curl для получения содержимого страниц в HTTPS, и он работает, я установил OpenSSL, поэтому я не вижу проблемы,Есть ли другой способ сделать HTTPS-соединения с TCL?.

Я не вижу, является ли это проблемой кодирования (возможно, я зарегистрирован неправильно по протоколу https) или, возможно, это плохая конфигурация моегосервер.Надеюсь, кто-нибудь поможет!Спасибо!

1 Ответ

3 голосов
/ 05 января 2011

Хм, я не могу воспроизвести это.Какой уровень исправления Tcl вы используете и какую версию пакета tls?

Я сделал это:

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

И он выдает «ok» в качестве вывода, с $statusсодержимое выглядит слишком вероятно (но слишком долго, чтобы вставить здесь).Это с Tcl 8.5.2 (я знаю, что мне нужно обновить), http 2.7 и tls 1.6.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...