Ios AF2.0和请求头

Ios AF2.0和请求头,ios,json,rest,afnetworking-2,http-status-code-406,Ios,Json,Rest,Afnetworking 2,Http Status Code 406,我正在使用AF2.0。 我将我的单例类实现为:AFHTTPSessionManager的子类 + (RESTClientManager *)sharedManager { static dispatch_once_t onceToken; dispatch_once(&onceToken, ^{ _sharedInstance = [[self alloc] initWithBaseURL:[NSURL URLWithString:@"http://myu

我正在使用AF2.0。 我将我的单例类实现为:AFHTTPSessionManager的子类

+ (RESTClientManager *)sharedManager
{
    static dispatch_once_t onceToken;
    dispatch_once(&onceToken, ^{
        _sharedInstance = [[self alloc] initWithBaseURL:[NSURL URLWithString:@"http://myurl.com:8080"]];
    });

    return _sharedInstance;
}


- (instancetype)initWithBaseURL:(NSURL *)url
{
    self = [super initWithBaseURL:url];

    if (self) {
        self.responseSerializer = [AFJSONResponseSerializer serializer];
        self.requestSerializer = [AFJSONRequestSerializer serializer];
    }

    return self;
}
当我需要发表文章时,我使用以下代码:

[self POST:@"/users" parameters:requestParameters success:^(NSURLSessionDataTask *task, id responseObject) {
        NSLog(@"Ok");

    }
    failure:^(NSURLSessionDataTask *task, id responseObject) {
        NSLog(@"Failed");
    }];
但我得到了一个错误:

{ status code: 406, headers {
    Connection = "keep-alive";
    "Content-Length" = 0;
    "Content-Type" = "application/json";
    Date = "Sat, 30 Aug 2014 09:29:15 GMT";
    Server = "8";
    "X-Powered-By" = "Undertow 1";
} }, NSLocalizedDescription=Request failed: unacceptable (406)}
使用RESTful客户端,我尝试发出相同的请求: 当我添加此标题字段时,此操作非常有效:

  • 接受“:应用程序/json
  • 内容类型:application/json
如何使用AFNetworking 2.0实现此功能


编辑

参数字典的打印

po requestParameters
{
    city = "";
    country = Italy;
    deviceToken = "";
    email = "email@sdsd.it";
    mobileNumber = "";
    name = "Test_iOS";
    phoneNumber = "";
    postalCode = "";
    street = "";
    streetNumber = "";
    surname = "";
    userId = 00000001;
}

如果您已将适当的
内容类型
添加到请求标头,则您的参数可能是错误的来源。如果您可以与负责后端服务器的任何人联系,您可能可以从他们那里获得准确的错误报告。如果没有,请确保参数不为null,并且您传递的内容遵循任何标准服务器使用


如果我们能够看到传递的参数,我们可以更好地帮助您。

我生成了一个NSDictionary,并在以下行中传递它:[self POST:@”/users"parameters:requestParameters success:…我编辑了我的问题:现在你可以找到字典参数的打印。TNX你确定你的服务返回JSON响应吗?在工作的规范文档中,我读到这些参数应该是JSON:just read:Body JSON包含用户详细信息。我不明白:我必须添加这个J吗请求正文中的子作为NSData,或者我可以将NSDictionary传递给AFNetworking的POST方法吗???错误代码406是当“您的后端服务表示它返回的响应类型未在客户端请求的Accept type HTTP头中提供”时这意味着,由于某些原因,您的内容类型和accept尚未设置为Json,即使您已经设置了Json。请尝试在执行POST请求之前记录self.requestserializers.allhttpheaders。(我是从内存中编写的,因此实际的属性名称可能完全不同)