栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > 面试问答

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

面试问答 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

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

在Swift 3及更高版本中,您可以:

let url = URL(string: "http://www.thisismylink.com/postName.php")!var request = URLRequest(url: url)request.setValue("application/x-www-form-urlenpred", forHTTPHeaderField: "Content-Type")request.httpMethod = "POST"let parameters: [String: Any] = [    "id": 13,    "name": "Jack & Jill"]request.httpBody = parameters.percentEnpred()let task = URLSession.shared.dataTask(with: request) { data, response, error in    guard let data = data,         let response = response as? HTTPURLResponse,         error == nil else {  // check for fundamental networking error        print("error", error ?? "Unknown error")        return    }    guard (200 ... 299) ~= response.statusCode else {         // check for http errors        print("statusCode should be 2xx, but is (response.statusCode)")        print("response = (response)")        return    }    let responseString = String(data: data, encoding: .utf8)    print("responseString = (responseString)")}task.resume()

哪里:

extension Dictionary {    func percentEnpred() -> Data? {        return map { key, value in let escapedKey = "(key)".addingPercentEncoding(withAllowedCharacters: .urlQueryValueAllowed) ?? "" let escapedValue = "(value)".addingPercentEncoding(withAllowedCharacters: .urlQueryValueAllowed) ?? "" return escapedKey + "=" + escapedValue        }        .joined(separator: "&")        .data(using: .utf8)    }}extension CharacterSet {     static let urlQueryValueAllowed: CharacterSet = {        let generalDelimitersToEnpre = ":#[]@" // does not include "?" or "/" due to RFC 3986 - Section 3.4        let subDelimitersToEnpre = "!$&'()*+,;="        var allowed = CharacterSet.urlQueryAllowed        allowed.remove(charactersIn: "(generalDelimitersToEnpre)(subDelimitersToEnpre)")        return allowed    }()}

这将检查基本的网络错误以及高级HTTP错误。这也可以正确地对查询的参数进行转义。

请注意,我使用的

name
of
Jack & Jill
来说明的正确
x-www-form-urlenpred
结果
name=Jack%20%26%20Jill
,该结果是“百分比编码”的(即,空格替换为
%20
&
值中的替换为
%26
)。



转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/413181.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号