当我尝试使用Racket的missingLabelNode.zPosition = 10.0f;
包通过HTTPS连接到网络服务器时,会发生以下情况:
net/http-client
#t
➜ code racket
Welcome to Racket v6.2.
> (require net/http-client)
> (http-sendrecv "google.com" "/" #:ssl? #t)
ssl-connect: requested protocol not supported
requested: 'auto
context...:
/usr/local/share/racket/collects/openssl/mzssl.rkt:608:0: make-raw-context
/usr/local/share/racket/collects/openssl/mzssl.rkt:482:18
/usr/local/share/racket/collects/racket/private/more-scheme.rkt:264:2: call-with-exception-handler
/usr/local/share/racket/collects/net/http-client.rkt:294:0: http-sendrecv92
/usr/local/share/racket/collects/racket/private/misc.rkt:87:7
'tls
> (require net/http-client)
> (http-sendrecv "google.com" "/" #:ssl? 'tls)
ssl-connect: requested protocol not supported
requested: 'tls
context...:
/usr/local/share/racket/collects/openssl/mzssl.rkt:608:0: make-raw-context
/usr/local/share/racket/collects/openssl/mzssl.rkt:482:18
/usr/local/share/racket/collects/racket/private/more-scheme.rkt:264:2: call-with-exception-handler
/usr/local/share/racket/collects/net/http-client.rkt:294:0: http-sendrecv92
/usr/local/share/racket/collects/racket/private/misc.rkt:87:7
(supported-client-protocols)
如何使用> (require openssl)
> (supported-client-protocols)
'()
连接到HTTPS服务器?
答案 0 :(得分:3)
使用'tls
代替#t
。
> (require net/http-client)
> (http-sendrecv "google.com" "/" #:ssl? 'tls)
#"HTTP/1.1 302 Found"
'(#"Location: https://www.google.dk/?gws_rd=cr&ei=10q1Ve3dMsm4sQGd_KioAQ"
#"Cache-Control: private"
#"Content-Type: text/html; charset=UTF-8"
#"P3P: CP=\"This is not a P3P policy! See http://www.google.com/support/accounts/bin/answer.py?hl=en&answer=151657 for more info.\""
#"Date: Sun, 26 Jul 2015 21:02:15 GMT"
#"Server: gws"
#"Content-Length: 259"
#"X-XSS-Protection: 1; mode=block"
#"X-Frame-Options: SAMEORIGIN"
#"Set-Cookie: PREF=ID=1111111111111111:FF=0:TM=1437944535:LM=1437944535:V=1:S=_FmpeZRsEpdAXW_-; expires=Tue, 25-Jul-2017 21:02:15 GMT; path=/; domain=.google.com"
#"Set-Cookie: NID=69=GDETUcLzNFvaXS9uD9fxW_rA-k3ywu9vsb8VVCBUUOrbL-BmWjxpj0duYXoNZyH0EHMt54dmVnn3xPJvESfM4tLy_T8DYCsas_9dloNB9s6NfcxmbeD4DQzAAou0ly_l; expires=Mon, 25-Jan-2016 21:02:15 GMT; path=/; domain=.google.com; HttpOnly"
#"Connection: close")
#<input-port:pipe>
答案 1 :(得分:3)
如果您正在使用Linux,可能会发生这种情况,因为Racket不了解您已安装的OpenSSL库的版本。通过检查ssl-load-fail-reason
确认,如@soegaard建议的那样。
解决方法是安装OpenSSL开发包(libssl-dev
或openssl-devel
或类似的东西),其中包括无版本的共享库符号链接。