在swift 2.0中,http post方法通过alamofire传递多个json参数

在swift 2.0中,http post方法通过alamofire传递多个json参数,swift,Swift,strong text这是我将两个参数(jsonData和device_Secret)传递给httpBody的代码,我应该得到下面的子响应 {"success":false,"msg":"Key not created plz try again."} 但我明白了 responseString = Optional({"success":false,"msg":"Invalid Method"}) 参数格式有问题,我做错了什么? 我的代码如下///////////// let JsonDat

strong text这是我将两个参数(jsonData和device_Secret)传递给httpBody的代码,我应该得到下面的子响应

{"success":false,"msg":"Key not created plz try again."}
但我明白了

responseString = Optional({"success":false,"msg":"Invalid Method"})
参数格式有问题,我做错了什么? 我的代码如下/////////////

let JsonData  = ["method":"device_token","params":["key":"1234jhg","device_id":"eb7e630a9637b0b83557e5a62121be8cb9210afb9aa5b878f819b775cb7d42a6"]]

        let device_secret  = ["params":["token":"-1","device_id":"9de47fb53c67eca4","key":"-1"]]
        let params = ["data":JsonData, "device_secret":device_secret] as Dictionary<String, AnyObject>


        let request = NSMutableURLRequest(URL: NSURL(string: "http://dev.jobsmarket.pk/api/v1")!)
        print(request)
        request.HTTPMethod = "POST"


        let data : NSData = NSKeyedArchiver.archivedDataWithRootObject(params)
        print("NSdata of params is")
        print(data)




        NSJSONSerialization.isValidJSONObject(params)
        print( NSJSONSerialization.isValidJSONObject(params))
        //            request.HTTPBody = params
        request.HTTPBody = NSKeyedArchiver.archivedDataWithRootObject(params)
        print("httpBody is ")
        print(request.HTTPBody)


        let task = NSURLSession.sharedSession().dataTaskWithRequest(request) { data, response, error in
            guard error == nil && data != nil else {                                                          // check for fundamental networking error
                print("error=\(error)")
                return
            }

            if let httpStatus = response as? NSHTTPURLResponse where httpStatus.statusCode != 200 {           // check for http errors
                print("statusCode should be 200, but is \(httpStatus.statusCode)")
                print("response = \(response)")
            }

            let responseString = NSString(data: data!, encoding: NSUTF8StringEncoding)
            print("responseString = \(responseString)")
        }
        task.resume()
让JsonData=[“方法”:“设备令牌”,“参数”:[“键”:“1234jhg”,“设备id”:“EB7E630A9637B0B83557E5A621BE8CB9210AFB9AA5B878F819B775CB7D42A6”]
让设备_secret=[“参数”:[“令牌”:“-1”,“设备_id”:“9de47fb53c67eca4”,“密钥”:“-1”]
让params=[“data”:JsonData,“device\u secret”:device\u secret]作为字典
let request=NSMutableURLRequest(URL:NSURL(字符串:)http://dev.jobsmarket.pk/api/v1")!)
打印(请求)
request.HTTPMethod=“POST”
let data:NSData=NSKeyedArchiver.archivedDataWithRootObject(参数)
打印(“参数的NSdata为”)
打印(数据)
NSJSONSerialization.isValidJSONObject(参数)
打印(NSJSONSerialization.isValidJSONObject(参数))
//request.HTTPBody=params
request.HTTPBody=NSKeyedArchiver.archivedDataWithRootObject(参数)
打印(“httpBody is”)
打印(request.HTTPBody)
让task=NSURLSession.sharedSession().dataTaskWithRequest(请求){数据,响应,中的错误
保护错误==nil&&data!=nil else{//检查基本网络错误
打印(“错误=\(错误)”)
返回
}
如果让httpStatus=响应为?NSHTTPURLResponse where httpStatus.statusCode!=200{//检查http错误
打印(“状态代码应为200,但为\(httpStatus.statusCode)”)
打印(“响应=\(响应)”)
}
让responseString=NSString(数据:data!,编码:NSUTF8StringEncoding)
打印(“responseString=\(responseString)”)
}
task.resume()

/////////////////////////

为什么要调用
NSKeyedArchiver.archivedDataWithRootObject(params)
而不是
NSJSONSerialization
stuff?要将NSdictionary转换为nsdata试试NJSOnSerialization…已经尝试过了,面临着与
let json=try JSONSerialization.data相同的问题(使用JSONObject:dic,选项:。预打印);request.HTTPBody=json
?为什么要调用
NSKeyedArchiver.archivedDataWithRootObject(参数)
而不是
NSJSONSerialization
stuff?要将NSdictionary转换为NSdataTry NJSOnSerialization,请尝试NJSOnSerialization。您尝试过的问题与
相同,让json=try JSONSerialization.data(使用JSONObject:dic,选项:.prettyPrinted);request.HTTPBody=json
let JsonData  = ["method":"device_token","params":["key":"1234jhg","device_id":"eb7e630a9637b0b83557e5a62121be8cb9210afb9aa5b878f819b775cb7d42a6"]]

        let device_secret  = ["params":["token":"-1","device_id":"9de47fb53c67eca4","key":"-1"]]
        let params = ["data":JsonData, "device_secret":device_secret] as Dictionary<String, AnyObject>


        let request = NSMutableURLRequest(URL: NSURL(string: "http://dev.jobsmarket.pk/api/v1")!)
        print(request)
        request.HTTPMethod = "POST"


        let data : NSData = NSKeyedArchiver.archivedDataWithRootObject(params)
        print("NSdata of params is")
        print(data)




        NSJSONSerialization.isValidJSONObject(params)
        print( NSJSONSerialization.isValidJSONObject(params))
        //            request.HTTPBody = params
        request.HTTPBody = NSKeyedArchiver.archivedDataWithRootObject(params)
        print("httpBody is ")
        print(request.HTTPBody)


        let task = NSURLSession.sharedSession().dataTaskWithRequest(request) { data, response, error in
            guard error == nil && data != nil else {                                                          // check for fundamental networking error
                print("error=\(error)")
                return
            }

            if let httpStatus = response as? NSHTTPURLResponse where httpStatus.statusCode != 200 {           // check for http errors
                print("statusCode should be 200, but is \(httpStatus.statusCode)")
                print("response = \(response)")
            }

            let responseString = NSString(data: data!, encoding: NSUTF8StringEncoding)
            print("responseString = \(responseString)")
        }
        task.resume()