ios - 如何将 NSURLRequest 的 HTTPBody 参数检索到字典 : [NSObject: AnyObject] in Swift

标签 ios swift dictionary afnetworking nsurlconnection

我正在尝试将 NSURLRequestHTTPBodyNSData 转换为 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/

相关文章:

ios - 使用 NavigationView 进行模态演示

ios - 单击搜索栏不会提示键盘(iOS Swift)

javascript - 检测浏览器/设备是否支持双击事件

ios - 快速将 ECPublicKey(SecKey) 转换为 PEM 字符串

ios - 使用类中的项目填充 UIPickerView

python - 字符串/字典/列表索引的短名称

python - 以相同顺序打印列表的最大值而不创建新列表

python - 创建嵌套子字典 python

当应用程序通过链接点击打开时,iOS 13 无法处理通用链接点击

iOS 9, swift 2.0 : Retrieving a Dictionary from JSON file