如何在 Swift 的 Get 请求中发送 [String]?

Posted

技术标签:

【中文标题】如何在 Swift 的 Get 请求中发送 [String]?【英文标题】:How to send a [String] in a Get Request in Swift? 【发布时间】:2020-07-23 18:44:07 【问题描述】:

我正在尝试发送 exPID = ["abcdef"] 是一个包含 Swift GET 请求中的一个字符串的数组,使用:

request(URLInfo, method: .get, parameters: exPID, encoding: URLEncoding.default, headers: getHeader)

但参数需要一个 String:AnyObject 的字典。

无法将“[String]”类型的值转换为预期的参数类型 '参数?' (又名'可选>')

我也试过getRequest.httpbody。即使在那时它也给了我错误。

【问题讨论】:

欢迎您!请使用Tour 并正确阅读How do I ask a good question? Format your question,然后说明您需要什么。 ["abcdef"] 是一个包含一个字符串的数组。 URL 应该是什么样子? &exPID=abcdef(就像问题中的数组是错误的)或者你想要多个值 &exPID=abcdef&exPID=qwewqe(这个数组不是错误),...或者参数值应该包括这些方括号和引号作为好吗? expId = ["abcdef"] 是一个只包含一个字符串的数组。 【参考方案1】:

对于具有正文的 GET 请求,在 http 正文中发送例如“ExPID”的字符串已被禁止。此更改已在 ios 13.0 发行说明中提及。

https://developer.apple.com/forums/thread/123348

这就是为什么 Swift 会自动失败诸如“GET 方法不能有正文”之类的请求

这只能通过使用 AlamoFire 发送键和值等参数或在 POST 请求中发送字符串来完成。

【讨论】:

以上是关于如何在 Swift 的 Get 请求中发送 [String]?的主要内容,如果未能解决你的问题,请参考以下文章

iOS Swift moya框架发送数组作为请求参数(GET/POST)

带参数的 Swift GET 请求

Swift3.0:Get/Post同步和异步请求

如何在 Swift 3 的 POST 请求中发送表单数据

如何在 swift4 中使用 Rxalamofire 发送 URL 请求

在 Swift 中使用 Alamofire 网络进行解析时,如何在请求中发送内容类型?