Fetch the repository succeeded.
This action will force synchronization from APIJSON/APIJSON-Demo, which will overwrite any changes that you have made since you forked the repository, and can not be recovered!!!
Synchronous operation will process in the background and will refresh the page when finishing processing. Please be patient.
//
// ViewController.swift
// testswift
//
// Created by TommyLemon on 17/11/28.
// Copyright © 2017年 https://github.com/TommyLemon/APIJSON . All rights reserved.
//
import UIKit
class 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 = 6
self.view.addSubview(requestLabel)
let responseLabel = UILabel(frame:CGRect(x:20, y:130, width:400, height:600))
responseLabel.text = "request..."
responseLabel.numberOfLines = 100
self.view.addSubview(responseLabel)
//生成UI >>>>>>>>>>>>>>>>>>>>>
//请求URL
let request = NSMutableURLRequest(url: URL(string: url)!)
request.httpMethod = "POST"
//设置发送的数据格式为JSON
request.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.default
let session = URLSession(configuration: config)
//发起请求
let dataTask = session.dataTask(with: request as URLRequest) { (data, response, error) in
print("\n\nreceived result!\n\n")
print(data)
print(response)
print(error)
//数据类型转换
let jsonData:NSDictionary = try! JSONSerialization.jsonObject(with: data!, options: .mutableContainers) as! NSDictionary
print(jsonData)
let res:String = self.toJSONString(jsonData as! [String : Any]);
print("Response = \n" + res)
//显示返回结果
DispatchQueue.main.async {
responseLabel.text = "Response:\n" + res
print("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!
}
}
此处可能存在不合适展示的内容,页面不予展示。您可通过相关编辑功能自查并修改。
如您确认内容无涉及 不当用语 / 纯广告导流 / 暴力 / 低俗色情 / 侵权 / 盗版 / 虚假 / 无价值内容或违法国家有关法律法规的内容,可点击提交进行申诉,我们将尽快为您处理。