在 Racket 中发送 HTTP POST
Sending HTTP POST in Racket
我正在尝试通过 Racket 中的 http/post 发送一个字符串,这是我在阅读 Racket HTTP Client Documentation
之后到目前为止所尝试的
#lang racket
(require net/http-client)
(define
myUrl "https://something.com")
(http-conn-send!
(http-conn-open
myUrl
#:ssl? #t)
#:version "1.1"
#:method "POST"
#:data "Hello")
但是我收到以下错误:
tcp-connect: connection failed
detail: host not found
address: https://www.w3.org/
port number: 443
step: 1
system error: nodename nor servname provided, or not known; errno=8
我尝试了几个不同的地址。
我是球拍和编程的新手,无法弄清楚我错过了什么。
在您的示例中,主机名只是 www.w3.org
部分——不包括方案(http 或 https)或任何路径。因此,例如这确实有效:
(http-conn-open "www.w3.com"
#:ssl? #t)
要发出 post 请求,您可以这样做:
#lang racket
(require net/http-client)
(define-values (status headers in)
(http-sendrecv "www.w3.com"
"/"
#:ssl? #t
#:version "1.1"
#:method "POST"
#:data "Hello"))
(displayln status)
(displayln headers)
(displayln (port->string in))
(close-input-port in)
在 Racket 中,一个函数可以 return 多个值。 http-sendrecv
return 三个,define-values
将每个分配给一个变量。
net/http-client
提供其他功能让您可以连接到主机,在该连接上发出多个请求,然后关闭连接。
我正在尝试通过 Racket 中的 http/post 发送一个字符串,这是我在阅读 Racket HTTP Client Documentation
之后到目前为止所尝试的#lang racket
(require net/http-client)
(define
myUrl "https://something.com")
(http-conn-send!
(http-conn-open
myUrl
#:ssl? #t)
#:version "1.1"
#:method "POST"
#:data "Hello")
但是我收到以下错误:
tcp-connect: connection failed
detail: host not found
address: https://www.w3.org/
port number: 443
step: 1
system error: nodename nor servname provided, or not known; errno=8
我尝试了几个不同的地址。
我是球拍和编程的新手,无法弄清楚我错过了什么。
在您的示例中,主机名只是 www.w3.org
部分——不包括方案(http 或 https)或任何路径。因此,例如这确实有效:
(http-conn-open "www.w3.com"
#:ssl? #t)
要发出 post 请求,您可以这样做:
#lang racket
(require net/http-client)
(define-values (status headers in)
(http-sendrecv "www.w3.com"
"/"
#:ssl? #t
#:version "1.1"
#:method "POST"
#:data "Hello"))
(displayln status)
(displayln headers)
(displayln (port->string in))
(close-input-port in)
在 Racket 中,一个函数可以 return 多个值。 http-sendrecv
return 三个,define-values
将每个分配给一个变量。
net/http-client
提供其他功能让您可以连接到主机,在该连接上发出多个请求,然后关闭连接。