使用NSJSONSerialization.dataWithJSONObject严重构建POST正文请求

时间:2016-03-24 12:05:38

标签: swift

我正在尝试使用NSMutableURLRequest创建POST请求,但将NSData对象传递给其HTTPBody的行为不符合预期。

以下是我的工作:

    guard let url = NSURL(string: endpoint) else {
        print("Error: Cannot create URL")
        return nil
    }
    do {
        let params = try NSJSONSerialization.dataWithJSONObject(options, options: [])

        let urlRequest:NSMutableURLRequest = NSMutableURLRequest(URL: url)
        urlRequest.HTTPMethod = method

        if method != "GET" {
            urlRequest.HTTPBody = params
        }

        return urlRequest

    } catch {
        print("Error: Cannot parse options data into JSON")
        return nil
    }

这是我得到的:

#<Hashie::Mash {"token":"MVgutecI0y5AzJ8KcIgkxT56mwEh","email":"adrien.giboire@gmail.com","password":"adichris"}=nil>

我的服务器是用Ruby编写的。以下是我如何获取它:

puts params.inspect

1 个答案:

答案 0 :(得分:3)

由于您要发布JSON,因此在返回之前必须将请求的Content-Type标头设置为application/json

request.setValue("application/json", forHTTPHeaderField: "Content-Type")