我正在努力使用IBM Cloud Bluemix环境和他们的Kitura服务器端Swift实现。 当然,关键是能够发出各种HTTP请求 到目前为止,我已经能够使用纯JSON主体处理GET请求和POST请求。 当涉及到form-data或application / x-www-form-urlencoded时,我很困惑。 从我读到的,似乎我应该使用Kitura提供的BodyParser类,但我担心我甚至不确定如何在代码中实际使用它。 到目前为止,我大部分时间都使用了以下非常有用的帖子。 From Rob Allen From Horea Porutiu From Kevin Hoyt
据我所知,我现在需要使用Kitura的BodyParser和Router类,但在我看来,在OpenWhisk + Kitura Swift的IBM Cloud Function实现中,htose已经完成了...所以我我现在不太确定......
任何想法或指针有人吗? 感谢
答案 0 :(得分:2)
您可以使用request.readString()
以原始格式阅读正文信息。
如果您正在使用BodyParser
中间件:
router.all("/name", middleware: BodyParser())
然后你可以将它用于urlencoded的身体:
router.post("/name") { request, response, next in
guard let parsedBody = request.body else {
next()
return
}
switch parsedBody {
case .urlEncoded(let data):
let name = data["name"].string ?? ""
try response.send("Hello \(name)").end()
default:
break
}
next()
}
其中data
是[String:String]
词典。
答案 1 :(得分:1)