同步操作将从 APIJSON/APIJSON-Demo 强制同步,此操作会覆盖自 Fork 仓库以来所做的任何修改,且无法恢复!!!
确定后同步将在后台操作,完成时将刷新页面,请耐心等待。
//// ViewController.swift// testswift//// Created by TommyLemon on 17/11/28.// Copyright © 2017年 https://github.com/TommyLemon/APIJSON . All rights reserved.//import UIKitclass ViewController: UIViewController {override func viewDidLoad() {super.viewDidLoad()// Do any additional setup after loading the view, typically from a nib.test()}override func didReceiveMemoryWarning() {super.didReceiveMemoryWarning()// Dispose of any resources that can be recreated.}/*** 通过POST请求测试APIJSON*/func test() {let url = "http://apijson.cn:8080/get";//要发送的请求数据let json = [//返回数据太长 "[]": ["User": [ //如果对象value是空的,请用[:]表示value,否则会被Swift解析为空数组[],而不是空对象{}"sex": 1]//]]let req = toJSONString(json);print("start http request...\n\nURL = " + url + "\nRequest = \n" + req)//生成UI <<<<<<<<<<<<<<<<<<<<<<let requestLabel = UILabel(frame:CGRect(x:20, y:10, width:400, height:130))requestLabel.text = "Request:\n" + req;requestLabel.numberOfLines = 6self.view.addSubview(requestLabel)let responseLabel = UILabel(frame:CGRect(x:20, y:130, width:400, height:600))responseLabel.text = "request..."responseLabel.numberOfLines = 100self.view.addSubview(responseLabel)//生成UI >>>>>>>>>>>>>>>>>>>>>//请求URLlet request = NSMutableURLRequest(url: URL(string: url)!)request.httpMethod = "POST"//设置发送的数据格式为JSONrequest.setValue("application/json", forHTTPHeaderField: "Content-Type")do {request.httpBody = try JSONSerialization.data(withJSONObject: json, options: JSONSerialization.WritingOptions.prettyPrinted)} catch {print("Something went wrong!")}//默认session配置let config = URLSessionConfiguration.defaultlet session = URLSession(configuration: config)//发起请求let dataTask = session.dataTask(with: request as URLRequest) { (data, response, error) inprint("\n\nreceived result!\n\n")print(data)print(response)print(error)//数据类型转换let jsonData:NSDictionary = try! JSONSerialization.jsonObject(with: data!, options: .mutableContainers) as! NSDictionaryprint(jsonData)let res:String = self.toJSONString(jsonData as! [String : Any]);print("Response = \n" + res)//显示返回结果DispatchQueue.main.async {responseLabel.text = "Response:\n" + resprint("set text end\n\n")}}//请求开始dataTask.resume()}func toJSONString(_ jsonData: [String: Any]!) -> String {guard let data = try? JSONSerialization.data(withJSONObject: jsonData!, options: [JSONSerialization.WritingOptions.prettyPrinted]) else {return ""}let str = String(data: data, encoding: String.Encoding.utf8)return str!}}
此处可能存在不合适展示的内容,页面不予展示。您可通过相关编辑功能自查并修改。
如您确认内容无涉及 不当用语 / 纯广告导流 / 暴力 / 低俗色情 / 侵权 / 盗版 / 虚假 / 无价值内容或违法国家有关法律法规的内容,可点击提交进行申诉,我们将尽快为您处理。