表单请求不包含密钥

Posted

技术标签:

【中文标题】表单请求不包含密钥【英文标题】:Form request contains no keys 【发布时间】:2015-09-28 18:47:02 【问题描述】:

我正在尝试使用 Swift 来处理一个简单的 html 表单。按照 READ ME 中给出的 Objective-C 代码,我编写了以下 Swift。

let webServer = GCDWebServer()

webServer.addDefaultHandlerForMethod("GET", requestClass: GCDWebServerRequest.self, processBlock: request in
    return GCDWebServerDataResponse(HTML:"<html><head><title>Hello</title></head><body><form method='post' action='/' enctype='application/x-www-form-urlencoded'><input type='text' value='name'><input type='submit' value='Submit'> </form></body></html>")

)


webServer.addHandlerForMethod("POST", path: "/", requestClass: GCDWebServerURLEncodedFormRequest.self, asyncProcessBlock: request in

    let value = request.0 as! GCDWebServerURLEncodedFormRequest
    //value has no keys 
)

我一定是错过了什么。

Objective-C 版本

[webServer addHandlerForMethod:@"POST"
                      path:@"/"
              requestClass:[GCDWebServerURLEncodedFormRequest class]
              processBlock:^GCDWebServerResponse *(GCDWebServerRequest* request) 

NSString* value = [[(GCDWebServerURLEncodedFormRequest*)request arguments] objectForKey:@"value"];
NSString* html = [NSString stringWithFormat:@"<html><body><p>%@</p></body></html>", value];
return [GCDWebServerDataResponse responseWithHTML:html];
];

【问题讨论】:

您还应该添加 swift 标签并提供原始 Obj-C 版本以便人们可以提供帮助。 【参考方案1】:

嗯。我承认我仔细研究了 Swift/Objective-C,以至于我错过了 HTML 中的一个愚蠢的东西。我傻傻的写了……

value='name' 

什么时候应该...

name='value'

干杯。

【讨论】:

以上是关于表单请求不包含密钥的主要内容,如果未能解决你的问题,请参考以下文章

如何将 API 密钥添加到 mailchimp 的 Axios 发布请求

Flask Web 开发学习稿

请求的注册表访问权限不允许#2

Laravel PATCH 请求不读取 Axios 表单数据

使用Access和密钥获取请求

如何拦截所有http请求,包括表单提交