Scheme 如何在guile中使用(web客户端)以字符串形式获取响应数据?
我正在尝试使用这里找到的文档以字符串形式获取响应数据 该文档提到http请求: 返回两个值:从服务器读取的响应,以及作为字符串、字节向量、f值或端口的响应体 但是,我不清楚如何实际提取字符串值。我可以得到端口,但不是文档中提到的普通字符串Scheme 如何在guile中使用(web客户端)以字符串形式获取响应数据?,scheme,guile,Scheme,Guile,我正在尝试使用这里找到的文档以字符串形式获取响应数据 该文档提到http请求: 返回两个值:从服务器读取的响应,以及作为字符串、字节向量、f值或端口的响应体 但是,我不清楚如何实际提取字符串值。我可以得到端口,但不是文档中提到的普通字符串 (define response (http-request (string-append "http://localhost:" port "/save") #:method 'POST
(define response
(http-request (string-append "http://localhost:" port "/save")
#:method 'POST
#:headers '((Content-Type . "application/json"))
#:streaming? #f
#:decode-body? #t
#:body (string->utf8 body)))
(response-body-port response)
Guile(Scheme)中的多值概念在其他编程语言中并不常见(领先于时代:p) 您指出有两个返回值。让我们得到这两个值。您可以在此处阅读更多详细信息: 同时,以下是我使用Guile参考示例测试的内容:
(use-modules (web client))
(use-modules (ice-9 receive))
(receive (response-status response-body)
(http-request "http://www.gnu.org")
(display response-body))
我给了receive
两个“形式参数”以绑定到httprequest
的两个返回值。但是我只使用第二个,也就是响应主体
(作为要显示的字符串),因为它是您要查找的对象
希望有帮助
附言:狡猾的黑客在网络上比在StackOverflow上更活跃。我在看,但我不是你最好的资产哈哈
快乐的黑客 如果您有一个端口并且需要一个字符串,只需使用
port->string