当我试图使用Racket的net/http-client包通过HTTPS连接到When服务器时,会发生以下情况:
用#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)
'()如何使用http-sendrecv连接到HTTPS服务器?
发布于 2015-07-27 14:08:06
如果您使用的是Linux,这可能会发生,因为Racket不知道您安装的OpenSSL库的版本。按照@soegaard的建议,通过检查ssl-load-fail-reason来确认。
解决办法是安装OpenSSL开发包(libssl-dev或openssl-devel或类似的东西),其中包括一个无版本的共享库符号链接。
发布于 2015-07-26 21:02:57
使用'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>https://stackoverflow.com/questions/31641819
复制相似问题