如何在没有“键 - 值”对格式的swift中发送json对象

时间:2015-03-04 03:51:35

标签: ios iphone json swift alamofire

嘿所以我必须向Django-server发送一个令牌字符串,它只接受一个字符串。我试图用alamo fire来做这件事,但我不能发送一个键值对来解决这个问题。有没有替代解决方案。我是新的IOS开发人员,这是我的第一个项目,我是社区的新手。谢谢。

2 个答案:

答案 0 :(得分:0)

将您的字典转换为JSON字符串并以此方式发送:

func jsonStringify(data: AnyObject) -> NSData? {
    var error: NSError?

    if let json = NSJSONSerialization.dataWithJSONObject(
        data,
        options: NSJSONWritingOptions(0),
        error: &error
        ) {
            return json
    } else {
        return nil
    }
}

答案 1 :(得分:0)

取决于您需要发送令牌的 (POST与GET对比HTTP Body与查询字符串)...您可能需要更改以下内容。但它应该让你开始NSURLSession。这将使用POST作为HTTP Body参数将令牌189E23FL2发送到服务器。

let url = NSURL(string: "http://some-server/endpoint")

var request = NSMutableURLRequest(URL: url!)
request.HTTPMethod = "POST"
request.HTTPBody = "189E23FL2".dataUsingEncoding(NSUTF8StringEncoding)

// if you need a csrf token, add something like this as well:
// request.addValue("the-csrf-token", forHTTPHeaderField: "X-CSRFToken")

var sessionConfiguration = NSURLSessionConfiguration.defaultSessionConfiguration()
var session = NSURLSession(configuration: sessionConfiguration)
var task = session.dataTaskWithRequest(request, completionHandler: { (data : NSData!, response : NSURLResponse!, error : NSError!) -> Void     in

    if (error == nil) {
        println("Done!")
    } else {
        println("Errorororororor")
    }
})

// start the task
task.resume()