我正在尝试将 NSURLRequest
的 HTTPBody
从 NSData
转换为 Dictionary
,以便访问它的参数并运行检查。
var parameters: [NSObject: AnyObject?] = [
"method": "foo",
]
var urlRequestString = "www.foobar.com/api/aMethod"
var urlRequest = AFOAuth2Manager().requestSerializer.requestWithMethod("POST",
URLString:urlRequestString ,
parameters: postParameters,
error: nil)
在另一种方法中,我试图对上面构造的 urlRequest
进行检查,以确保 NSURLRequest 中的 "method"
包含正确的值 “富”
。
我需要的是将 HTTPBody
转换为 Dictionary
([NSObject: AnyObject]
)
这样我就可以检查 "method"
参数是否包含我需要的值。
我怎样才能做到这一点?
最佳答案
试试这个:
func queryDictionaryForQueryString(query: String) -> Dictionary<String, String> {
var dictionary = [String: String]()
for keyValueString in query.componentsSeparatedByString("&") {
var parts = keyValueString.componentsSeparatedByString("=")
if parts.count < 2 { continue; }
var key = parts[0].stringByRemovingPercentEncoding!
var value = parts[1].stringByRemovingPercentEncoding!
dictionary[key] = value
}
return dictionary
}
那么你可以
let httpBody = urlRequest.HTTPBody
let httpBodyString = NSString(data: httpBody!, encoding: NSUTF8StringEncoding) as! String
let queryDictionary = queryDictionaryForQueryString(httpBodyString)
println(queryDictionary["method"])
关于ios - 如何将 NSURLRequest 的 HTTPBody 参数检索到字典 : [NSObject: AnyObject] in Swift,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30484251/