Swift 5:简单的字符串 URLRequest
Posted
技术标签:
【中文标题】Swift 5:简单的字符串 URLRequest【英文标题】:Swift 5: simple string URLRequest 【发布时间】:2020-10-22 07:22:21 【问题描述】:我希望你能帮助我。
我目前正在使用原生 swift api 进行 URLSession 和 URLRequest 网络调用。
我已经使用字典实现了json结构的正确发送。
let params: [String: Any] = ["user": "demo"]
var request = URLRequest(url: URL(string: "https://.....")!)
request.httpMethod = "POST"
request.addValue("application/json", forHTTPHeaderField: "Content-Type")
do
request.httpBody = try JSONSerialization.data(withJSONObject: params, options: .prettyPrinted)
catch _
如何发送一个简单的字符串?
let params: "demo"
var request = URLRequest(url: URL(string: "https://.....")!)
request.httpMethod = "POST"
request.httpBody = .......?
【问题讨论】:
【参考方案1】:您只需要将字符串转换为Data
,使用data(using:)
:
request.httpBody = "a simple string".data(using: .utf8)
【讨论】:
需要添加 -> request.addValue("application/json", forHTTPHeaderField: "Content-Type") ? @esantiago 您的“简单字符串”是否应该被解释为 JSON。如果是这样,请添加。如果没有,您也应该添加它,但使用text/plain
之类的内容类型,而不是 application/json
。【参考方案2】:
你可以试试
request.httpBody = Data("yourString".utf8)
【讨论】:
有必要加吗? -> request.addValue("application/json", forHTTPHeaderField: "Content-Type") 是的,您需要引导您的服务器发送内容,无论是 text 、 html 、 json 还是 media 在您当前的情况下它是 json 解释以上是关于Swift 5:简单的字符串 URLRequest的主要内容,如果未能解决你的问题,请参考以下文章
错误:“模式无法匹配 'URLRequest' 类型的值”在 swift 中
indexAtPosition、urlRequest.url!.isEqual 的 swift 3 等效项
Swift 4 将参数添加到 URLRequest 完成处理程序