我有一个使用Postman传递URL参数的工作场景.现在,当我尝试通过Swift中的Alamofire进行此操作时,它无效.
你会如何在Alamofire中创建这个网址?
http://localhost:8080/?test=123
_url = "http://localhost:8080/" let parameters: Parameters = [ "test": "123" ] Alamofire.request(_url,method: .post,parameters: parameters,encoding: URLEncoding.default,headers: headers
问题是你正在使用URLEncoding.default. Alamofire根据您使用的HTTP方法对URLEncoding.default进行不同的解释.
对于GET,HEAD和DELETE请求,URLEncoding.default将参数编码为查询字符串并将其添加到URL,但对于任何其他方法(如POST),参数将被编码为查询字符串并作为主体发送HTTP请求.
要在POST请求中使用查询字符串,您需要将编码参数更改为URLEncoding(destination:.queryString).
您可以查看有关Alamofire如何处理请求参数here的更多详细信息.
您的代码应如下所示:
_url = "http://localhost:8080/" let parameters: Parameters = [ "test": "123" ] Alamofire.request(_url,encoding: URLEncoding(destination: .queryString),headers: headers)
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。