带有正文的 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 帖子

Swift 2.0 POST 正文空

带有字符串正文的 ios HTTP Post

如何在 Alamofire 4.0 中仅使用参数和正文在 swift 中使用 POST 方法发送请求?

如何在 request.http POST 方法的正文中传递动态参数

Swift POST 正文参数未接收