首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用Racket连接到HTTPS服务器

使用Racket连接到HTTPS服务器
EN

Stack Overflow用户
提问于 2015-07-26 20:51:29
回答 2查看 468关注 0票数 4

当我试图使用Racket的net/http-client包通过HTTPS连接到When服务器时,会发生以下情况:

#t

代码语言:javascript
复制
➜  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

代码语言:javascript
复制
> (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)输出

代码语言:javascript
复制
> (require openssl)
> (supported-client-protocols)
'()

如何使用http-sendrecv连接到HTTPS服务器?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2015-07-27 14:08:06

如果您使用的是Linux,这可能会发生,因为Racket不知道您安装的OpenSSL库的版本。按照@soegaard的建议,通过检查ssl-load-fail-reason来确认。

解决办法是安装OpenSSL开发包(libssl-devopenssl-devel或类似的东西),其中包括一个无版本的共享库符号链接。

票数 3
EN

Stack Overflow用户

发布于 2015-07-26 21:02:57

使用'tls而不是#t

代码语言:javascript
复制
> (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>
票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/31641819

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档