【发布时间】:2016-08-10 03:39:12
【问题描述】:
所以,我正在尝试使用 Alamofire 使用默认选项发出 .POST 请求:
Alamofire.request(.POST, url, parameters: parameters).validate().responseJSON
这个很好用。正如文档所说,参数的默认编码是.URL。
现在我正在尝试按照本指南改进我的代码创建路由器: https://grokswift.com/router/
在实现的最后需要手动对参数进行编码。所以,如果默认值有效,我现在在这里使用.URL 编码,如下所示:
let encoding = Alamofire.ParameterEncoding.URL
let (encodedRequest, _) = encoding.encode(urlRequest, parameters: parameters)
现在请求不起作用,因为参数显然是以错误的格式发送的。
我很确定 API 可以正常工作,我正在 Postman 中对其进行测试,并使用 form-data 选项发送参数。
提前感谢任何可以帮助我的人!
【问题讨论】:
-
也许你可以尝试使用alamofire的
multipartFormData -
@Tj3n 我想到了这个。但是如果编码方式相同,默认请求中没有
multipartFormData,但在路由器中没有multipartFormData怎么办? -
我对此不太确定:D 也许您可以尝试打印出请求的 HTTPBody 并将其解码回来查看值?
-
这两个请求之间可能存在一些 HTTP 标头差异。也许您没有在后一种方法中设置
Content-Type标头? -
可以的! @AaronBrager 我不检查这个,过会儿试试!
标签: ios swift api alamofire postman