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 完成处理程序

Swift 3 WKWebView 'URLRequest';您的意思是使用“as”来显式转换吗? ( 漏洞 )

swift URLRequest调试扩展

用于解析平台 REST API (JSON) 并解码为结构的 Swift URLRequest