好的,我在
中找到了解决方案
POST/GET bindings in Racket
基本上是为了得到
localhost:8080/api/add/?json={ some json }
你会使用
(bytes->string/utf-8
(binding:form-value
(bindings-assq (string->bytes/utf-8 "[field_name_here]")
(request-bindings/raw req))))
现在这回答了我的问题,但是当搜索的绑定不存在时让我遇到异常,所以我决定采取额外的步骤并执行存在检查。在 PHP 中,我想执行类似...
<?php
function get_param_as_string( $param ) {
if ( isset( $_GET[ $param ] ) )
return $_GET[ $param ] ;
return "" ;
}
?>
所以我创建了球拍程序
(define (get-param->string req param)
(if (eq? #f (bindings-assq (string->bytes/utf-8 param)
(request-bindings/raw req)))
""
(bytes->string/utf-8
(binding:form-value
(bindings-assq (string->bytes/utf-8 param)
(request-bindings/raw req))))))
现在就像 url 的问题所指定的那样
localhost:8080/api/add/?json={ some json }
以下将检索 json GET 变量(如果存在)或返回“”(如果缺失)。所以...
(get-param->string req "json")
会导致...
{ some json }
和
localhost:8080/api/add/?tmp={ some json }
或
localhost:8080/api/add/
会导致...
""