从 iOS 7 开始将数组发送到服务器

Posted

技术标签:

【中文标题】从 iOS 7 开始将数组发送到服务器【英文标题】:Send array to server starting with iOS 7 【发布时间】:2016-04-13 11:23:49 【问题描述】:

我需要向服务器发送许多变量。以前我使用这样的构造:

let myURL = NSURL(string: "http://example.com");
let request = NSMutableURLRequest(URL:myURL!);
request.HTTPMethod = "POST";

let postString = "param1=\(var1)&param2=\(var2)"

request.HTTPBody = postString.dataUsingEncoding(NSUTF8StringEncoding);

现在我不仅需要发送 param1 和 param2 等变量,还需要发送少量数组。我知道有一个名为 Alamofire 的库,但它不支持 ios 7。

【问题讨论】:

【参考方案1】:

你可以这样做,

let mapDict = [ "a":"First", "b":"Second"]

let json = [ "title":"kk" , "dict": mapDict ]
let jsonData = NSJSONSerialization.dataWithJSONObject(json, options: .PrettyPrinted, error: nil)

// create post request
let url = NSURL(string: "http://example.com/post")!
let request = NSMutableURLRequest(URL: url)
request.HTTPMethod = "POST"

// insert json data to the request
 request.HTTPBody = jsonData


 let task =  NSURLSession.sharedSession().dataTaskWithRequest(request)  data,response,error in
 if error != nil
    println(error.localizedDescription)
    return

if let responseJSON = NSJSONSerialization.JSONObjectWithData(data, options: nil, error: nil) as? [String:AnyObject]
    println(responseJSON)



task.resume()

您可以根据需要使用数组而不是字典。希望这会有所帮助。 :)

【讨论】:

谢谢,但这段代码不适用于 Swift 2 和 Xcode 7。它需要 try 块和其他一些更改

以上是关于从 iOS 7 开始将数组发送到服务器的主要内容,如果未能解决你的问题,请参考以下文章

如何在 iOS 中使用 NSDictionary 添加图像并使用 POST 方法将数组列表发送到服务器

如何使用钩子将项目附加到 React 组件中的数组?

将字节数组从java程序发送到c++

将字节数组从 NodeJS 发送到 C 库

BLE 在将数据从 iOS 7.1 发送到 iOS 8 时花费了太多时间

使用 XMPP 协议通过 tigase 服务器将字符串数组从一个 Android 发送到另一个