Objective c OSX-AFX即使使用JSON序列化程序集也可以发送文本

Objective c OSX-AFX即使使用JSON序列化程序集也可以发送文本,objective-c,macos,swift,afnetworking,Objective C,Macos,Swift,Afnetworking,我对AFNetworking和AFJSONRequestSerializer有问题。我尝试访问一个API,请求包含一个text/plain头。这是我的密码: class BaseService { var manager: AFHTTPRequestOperationManager! init() { manager = AFHTTPRequestOperationManager() manager.responseSerializer = AF

我对
AFNetworking
AFJSONRequestSerializer
有问题。我尝试访问一个API,请求包含一个
text/plain
头。这是我的密码:

class BaseService {
    var manager: AFHTTPRequestOperationManager!

    init() {
        manager = AFHTTPRequestOperationManager()
        manager.responseSerializer = AFJSONResponseSerializer()
        manager.requestSerializer = AFJSONRequestSerializer(writingOptions: NSJSONWritingOptions.allZeros)
    }
}

class UserService: BaseService {
    func startNewEntry(name: String) {
        let params = [
            "time_entry": [
                "description": name,
                "created_with": "fooBar"
            ]
        ]

        manager.POST(
            "endpoint",
            parameters: params,
            success: { (operation, response) -> Void in

                let json = JSON(response)

                println("OK")
                println(json)

                Context.shared.entries.getFromJSON(json)

            }) { (operation, error) -> Void in
                println("-- ERROR --")
                println(operation)
                println(error)
            }
    }

您知道这个问题吗?

否,此代码将创建一个内容类型为
application/json
的请求。但我想知道你是否被一条错误信息误导了,它说:

请求失败:不可接受的内容类型:text/html

如果你知道了,这并不是说请求的内容类型不可接受,而是说请求失败了,因为响应是
text/html
。这是一个非常常见的问题:如果试图创建JSON响应的服务器代码由于某种原因失败,有时错误消息不是JSON,而是HTML

我建议在
POST
方法的
failure
块中添加以下内容,以便查看此
text/html
响应是什么:

if operation.responseData != nil {
    println(NSString(data: operation.responseData, encoding: NSUTF8StringEncoding))
}

这样,如果您从服务器收到一条文本错误消息(例如,请求格式不正确或您收到了什么),您将能够读取返回的HTML响应。

如果您没有解释问题是什么,我们如何知道问题是什么?