在plist.info中加入如下内容
<key>NSAppTransportSecurity</key>
<dict>
<key>NSAllowsArbitraryLoads</key>
<true/>
</dict>
@IBAction func btn2(_ sender: Any) {//post
let StrUrl = "http://appio.cn/WebTest/LoginCheck" //访问url
let StrBody = "username=admin&password=1234" //post提交数据
let postNSData = StrBody.data(using: String.Encoding.utf8 ) //也可以写作 let postData = StrBody.data(using: .utf8)
let url = URL(string: StrUrl)
var request = URLRequest(url: url!) //请求
request.httpMethod = "POST" //Post方法
request.httpBody = postNSData
//初始化请求
let dataTask = URLSession.shared.dataTask(with: request, completionHandler: { (data, resp, err) in
if err != nil {
print(err.debugDescription)
}
else {
let responseStr = String(data: data!, encoding: String.Encoding.utf8)
print(responseStr!) //包体数据
//URLResponse类里没有http返回值, 需要先强制转换!
let httpResponse = resp as? HTTPURLResponse
if (httpResponse != nil) {
if httpResponse!.statusCode == 200 {
//JSON解析
if let json = try? JSONSerialization.jsonObject(with: data!, options: .allowFragments) as! [String : Any] {
print("---------------------------------------------")
/* 返回json数据格式 {"status":"ok","msg":"welcome","data":["100","220","300","400"]} */
//读取普通数据
let strMsg2 = json["msg"] as! String
print(strMsg2)
//读取数组
var array: [String] = json["data"] as! [String]
for index in 0..<array.count{
print( array[index])
}
}
} else {
//通知UI接口执行失败
}
}
}
}) as URLSessionTask
dataTask.resume() //执行任务
}