Swift项目中的AFNetorking-“错误:请求失败:内容类型不可接受:text / html”

Dun*_*bah 2 api ios afnetworking swift

我正在用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)
    })
Run Code Online (Sandbox Code Playgroud)

我收到此错误是AFNetworking的回应:

Error: Request failed: unacceptable content-type: text/html
Run Code Online (Sandbox Code Playgroud)

归根结底,我希望在允许用户继续在应用程序中之前验证它是否已由服务器保存。

任何帮助是极大的赞赏。

Pin*_*uch 5

您必须添加响应所允许的内容类型。

您可以对json内容执行此操作:

 manager.responseSerializer.acceptableContentTypes = NSSet(objects: "application/json")
Run Code Online (Sandbox Code Playgroud)

编辑

如果您使用的是AFNetworking 2.0,请从AFNetworking Wiki:

“默认情况下,AFHTTPRequestOperationManager和AFHTTPSessionManager具有JSON序列化器。”

因此,您应该尝试像这样在管理器中更改响应序列化器:

manager.responseSerializer = AFHTTPResponseSerializer()
Run Code Online (Sandbox Code Playgroud)