请求的资源不支持使用 Alamofire 的 http 方法“T”(或“ST”)
Posted
技术标签:
【中文标题】请求的资源不支持使用 Alamofire 的 http 方法“T”(或“ST”)【英文标题】:The requested resource does not support http method 'T' (or 'ST') with Alamofire 【发布时间】:2019-03-14 21:39:25 【问题描述】:我遇到了一个奇怪的问题。使用 Alamofire 运行一系列 HTTP 请求时,我收到错误响应:
请求的资源不支持http方法'T'
(上面是一个 GET 请求)
Alamofire.request(url, method: request.httpMethod, parameters: request.parameters, encoding: request.encoding, headers: request.headers).responseData response in
当我调试并查看 request.httpMethod 的值时,它始终是完整的 GET,但无论如何我都会收到该错误。我已经尝试在 Alamofire 中遵循更深层次的逻辑,但它似乎保留了 GET 的值,只要我可以通过我的 pod 跟踪它。
我让 Charles 监听一些 http 网络流量,看看它是否标记为 GET
或 T
,但该请求的流量根本没有显示...
我已经重现了模拟器和设备上的行为。
如果我运行完全相同的 http 请求,但使用 urlSession.uploadTask
,它可以正常工作并且永远不会遇到问题。
有人看到此内容或对如何确定导致截断的原因有任何想法吗?最好我能猜到它发生在 Alamofire,但我不知道从这里去哪里。
【问题讨论】:
您使用哪种编码?尝试编码:URLEncoding.default。检查是否存在问题,如果使用 Content-Type: application/json 这行得通...但是为什么呢? 【参考方案1】:您使用哪种编码?
尝试编码:URLEncoding.default.
检查是否存在问题,如果使用Content-Type: application/json
如果后端使用的是 spring,则可能会导致该问题。这似乎是一个后端问题。
有些人在使用 Alamofire 时遇到问题,而 Moya 则在其中工作, 其他一些人对 Alamofire 工作的 Moya 有问题。 一个奇怪的问题,但我很确定,后端导致 问题!
【讨论】:
我们的后端不是 spring,但这确实解决了问题。我唯一的想法是有这个问题的有罪端点是一个不需要 JSONEncoding 的 GET 请求以上是关于请求的资源不支持使用 Alamofire 的 http 方法“T”(或“ST”)的主要内容,如果未能解决你的问题,请参考以下文章
带有嵌套参数的 Alamofire POST 请求不返回任何内容