我正在将带有 CocoaPods 的 AFNetworking 实现到一个 Swift 项目中。我习惯用 Ruby 编程,而我对 iOS 开发还很陌生。 Cocoapods 很难在我的项目中正常工作,但我现在可以成功访问 AFNetworking 库。
我想做的是用 POST 命中一个表单并得到一个我可以解析的“text/html”响应,这样我就可以判断它是否保存了。这本身不是 API,而是由 InfusionSoft 生成的表单。用户将输入一个电子邮件地址,我会将其发送到 API 进行存储。这是我使用的代码:
let manager = AFHTTPRequestOperationManager()
var parameters = ["inf_form_xid": "MY_ACCESS_ID",
"inf_form_name": "Webform in Content App",
"infusionsoft_version": "1.34.0.35",
"inf_field_email": self.emailTextField.text]
manager.POST( "https://ns166.infusionsoft.com/app/form/process/REALLYLONGUNIQUEID",
parameters: parameters,
success: { (operation: AFHTTPRequestOperation!,responseObject: AnyObject!) in
println("JSON: " + responseObject.description)
},
failure: { (operation: AFHTTPRequestOperation!,error: NSError!) in
println("Error: " + error.localizedDescription)
})
我收到的错误是 AFNetworking 的回复:
Error: Request failed: unacceptable content-type: text/html
在一天结束时,我想在允许用户继续使用应用程序之前验证它是否已被服务器保存。
非常感谢任何帮助。
最佳答案
您必须为响应添加允许的内容类型。
你可以对 json 内容这样做:
manager.responseSerializer.acceptableContentTypes = NSSet(objects: "application/json")
编辑
如果您使用的是 AFNetworking 2.0,来自 AFNetworking wiki :
“默认情况下,AFHTTPRequestOperationManager 和 AFHTTPSessionManager 具有 JSON 序列化程序。”
所以你也许应该尝试像这样更改你的管理器中的响应序列化程序:
manager.responseSerializer = AFHTTPResponseSerializer()
关于ios - Swift 项目中的 AFNetorking -- "Error: Request failed: unacceptable content-type: text/html",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26408655/