绑定Json和post请求

经过了一整天,并检查堆栈溢出和几个论坛上的许多链接,我无法破解它:我认为许多swift开发人员发现它很容易,但我无法破解它,请帮助

我有一个url和一个JSON来绑定和获取JSON响应

urlPOST: http://myurl/myurl.com…….//

JSON请求:

 { "BookingId": "1501433021", "ProductType": "0", "Client": "1", "OriginAirport": { "CityCode": "NYC", "CityName": "New York", "AirportCode": "NYC", "AirportName": "New York City All Airports", "Country": "US", "Terminal": "" }, "DestinationAirport": { "CityCode": "LON", "CityName": "London", "AirportCode": "LON", "AirportName": "London All Airports", "Country": "GB", "Terminal": "" }, "TravelDate": "2016-10-19T05:07:57.865-0400 ", "ReturnDate": "2016-10-21T05:08:02.832-0400 ", "SearchDirectFlight": false, "FlexibleSearch": false, "TripType": 2, "Adults": 1, "Children": 0, "Infants": 0, "CabinType": 1, "SearchReturnFlight": true, "Airline": "", "CurrencyCode": "USD", "SiteId": "LookupFare" } 

MyCode(这个代码是从我只是想让它为我工作的地方复制)显然不适合我

 import UIKit class SearchFlightsVC: UIViewController{ override func viewDidLoad() { print("vdfvdfvdf") // prepare json data let json = ["BookingId": "1501433021", "ProductType": "0", "Client": "1", "OriginAirport": [ "CityCode": "CLT", "CityName": "Charlotte", "AirportCode": "CLT", "AirportName": "Douglas Intl", "Country": "US", "Terminal": "" ], "DestinationAirport": [ "CityCode": "YTO", "CityName": "Toronto", "AirportCode": "YTO", "AirportName": "Toronto All Airports", "Country": "CA", "Terminal": "" ], "TravelDate": "2016-10-19T05:07:57.865-0400", "ReturnDate": "2016-10-21T05:08:02.832-0400", "SearchDirectFlight": false, "FlexibleSearch": false, "TripType": 2, "Adults": 1, "Children": 0, "Infants": 0, "CabinType": 1, "SearchReturnFlight": true, "Airline": "", "CurrencyCode": "USD", "SiteId": "LookupFare" ] do { let jsonData = try NSJSONSerialization.dataWithJSONObject(json, options: .PrettyPrinted) print(jsonData) // create post request let url = NSURL(string: "http://myurl/myurl.com.......//")! let request = NSMutableURLRequest(URL: url) request.HTTPMethod = "POST" // insert json data to the request request.setValue("application/json; charset=utf-8", forHTTPHeaderField: "Content-Type") request.HTTPBody = jsonData let task = NSURLSession.sharedSession().dataTaskWithRequest(request){ data, response, error in print(response) if error != nil{ print("Error -> \(error)") return } do { let result = try NSJSONSerialization.JSONObjectWithData(data!, options: []) as? [String:AnyObject] print("Result -> \(result)") } catch { print("Error -> \(error)") } } //task.resume() //return task } catch { print(error) } } } 

我已经检查过了

如何使用swift语言创build和发送json数据到服务器

使用POST方法在Swift中使用HTTP请求

但是没有任何作品适合我

所有的帮助被赞赏在此先感谢!

这是我为我的应用程序编写的代码,并根据您的请求进行了自定义

  func sendRequest(address: String, method: String, body: Dictionary<String, AnyObject>) { let url = NSURL(string: address) let request = NSMutableURLRequest(URL: url!) request.setValue("application/json; charset=utf-8", forHTTPHeaderField: "Content-Type") request.HTTPMethod = method do { request.HTTPBody = try NSJSONSerialization.dataWithJSONObject(body, options: NSJSONWritingOptions.init(rawValue: 2)) } catch { // Error handling print("There was an error while Serializing the body object") return } let session = NSURLSession.sharedSession().dataTaskWithRequest(request, completionHandler: { (data, response, error) -> Void in do { if error != nil { print("Error -> \(error)") return } if let json = try NSJSONSerialization.JSONObjectWithData(data!, options: NSJSONReadingOptions.MutableContainers) as? [NSDictionary] { let result = json } } catch { print("Send request error while Serializing the data object") return } }) session.resume() } sendRequest("your.URL.come", method: "POST", body: json) 

希望这将有助于和另外一件事TransportSecurity添加到您的info.plist或复制行打击和更改“your.URL.come”您的基地址

  <key>NSAppTransportSecurity</key> <dict> <key>NSAllowsArbitraryLoads</key> <true/> <key>NSExceptionDomains</key> <dict> <key>your.URL.come</key> <dict> <key>NSExceptionAllowsInsecureHTTPLoads</key> <true/> <key>NSIncludesSubdomains</key> <true/> </dict> </dict> </dict> 

希望这会有所帮助