带有正文的 Swift HTTP POST
Posted
技术标签:
【中文标题】带有正文的 Swift HTTP POST【英文标题】:Swift HTTP POST With Body 【发布时间】:2014-11-03 23:20:32 【问题描述】:我目前正在尝试将我公司的应用程序从 ObjC 迁移到 Swift,并且在使用新的 NSURLSession
API(特别是 dataTaskWithRequest:completionHandler:
)的 POST 请求方面遇到了一些问题。我只是想用一些 URL 编码的参数(例如,somekey=someval&anotherkey=anotherval
)作为我的正文进行 POST。当我尝试使用 POST 发送正文时,请求失败并出现此错误。
NSUnderlyingError=0x7ff20bd28b90 "The operation couldn’t be completed. (kCFErrorDomainCFNetwork error -1005.)"
奇怪的是,当我不发送正文时,请求成功。这并不适合我的用例,因为我需要在我的请求中发送一个正文。标题似乎也不重要。
我在这个一般主题 namely this one 上找到了几个 GitHub/SO 线程,但不同之处在于我只提出一个请求并收到此错误。
我的第一个想法显然是我的身体有问题,但即使是 URL 编码似乎也无法解决问题。
这是我的设置:
Xcode 6.1 6A1052d OS X 10.10 14A389我在一个 Cocoa Touch Framework 项目中尝试这个,我在使用 XCTest 时遇到了这个错误(尝试编写单元测试来开始)。
任何帮助或指导将不胜感激。谢谢!
【问题讨论】:
在 ios 8 模拟器中的错误 -1005 上查看 this post。 虽然-1005在这种情况下是一样的,但报告的错误信息是不同的。重新启动 Xcode 和模拟器并没有缓解这个问题。 【参考方案1】:原来我没有将HTTPMethod
设置为“POST”...有点希望错误更具体。
【讨论】:
以上是关于带有正文的 Swift HTTP POST的主要内容,如果未能解决你的问题,请参考以下文章
Swift:带有 json 正文的 alamofire 帖子
如何在 Alamofire 4.0 中仅使用参数和正文在 swift 中使用 POST 方法发送请求?