Ios AFNetworkingErrorDomain代码=-1011“;请求失败:内部服务器错误(500)";

Ios AFNetworkingErrorDomain代码=-1011“;请求失败:内部服务器错误(500)";,ios,afnetworking-2,Ios,Afnetworking 2,我正在使用AF2网络。我是IOS开发的新手。我想用POST方法连接一些API 在这个API中,我还需要设置头 这是我的密码 AFHTTPSessionManager *manager = [[AFHTTPSessionManager alloc] initWithBaseURL:baseURL]; manager.responseSerializer.acceptableContentTypes =[manager.responseSerializer.acceptableConten

我正在使用AF2网络。我是IOS开发的新手。我想用POST方法连接一些API

在这个API中,我还需要设置头

这是我的密码

AFHTTPSessionManager *manager = [[AFHTTPSessionManager alloc] initWithBaseURL:baseURL];

    manager.responseSerializer.acceptableContentTypes =[manager.responseSerializer.acceptableContentTypes setByAddingObject:@"text/html"];
    manager.responseSerializer.acceptableContentTypes = [NSSet setWithObject:@"text/html"];
    [manager.requestSerializer setValue:token forHTTPHeaderField:@"X-Auth-Token"];
    manager.responseSerializer = [AFJSONResponseSerializer serializer];

    [manager POST:@"api/v1/contact-group/add/" parameters:params

    success:^(NSURLSessionDataTask *task, id responseObject) {


    } failure:^(NSURLSessionDataTask *task, NSError *error) {


    }];
当我使用这段代码时,我得到的错误如下

Error Domain=AFNetworkingErrorDomain Code=-1011 "Request failed: internal server error (500)" UserInfo=0xa8b0930 {NSErrorFailingURLKey=http://xxxxxx.info/api/v1/contact-group/add, NSLocalizedDescription=Request failed: internal server error (500), NSUnderlyingError=0xa88cb00 "Request failed: unacceptable content-type: text/html", AFNetworkingOperationFailingURLResponseErrorKey=<NSHTTPURLResponse: 0xaa5a940> { URL: http://xxxxxx.info/api/v1/contact-group/add } { status code: 500, headers {
    "Cache-Control" = "no-cache";
    Connection = close;
    "Content-Type" = "text/html";
    Date = "Thu, 12 Jun 2014 15:39:31 GMT";
    Server = Apache;
    "Set-Cookie" = "laravel_session=.....";
    "X-Frame-Options" = SAMEORIGIN;
    "X-Powered-By" = "PHP/5.3.28, PleskLin";
} }}
 NSMutableDictionary *params = [[NSMutableDictionary alloc]
                                   initWithObjects:@[guid, groupName, description]
                                   forKeys:@[APISEND_CONTACTGROUPKEY, APISEND_CONTACTGROUPNAME, APISEND_CONTACTGROUPDESCRIPTION]];
服务器响应

{
    "error": false,
    "code": 200,
    "message": "Success"
}
我正在发送这样的参数

Error Domain=AFNetworkingErrorDomain Code=-1011 "Request failed: internal server error (500)" UserInfo=0xa8b0930 {NSErrorFailingURLKey=http://xxxxxx.info/api/v1/contact-group/add, NSLocalizedDescription=Request failed: internal server error (500), NSUnderlyingError=0xa88cb00 "Request failed: unacceptable content-type: text/html", AFNetworkingOperationFailingURLResponseErrorKey=<NSHTTPURLResponse: 0xaa5a940> { URL: http://xxxxxx.info/api/v1/contact-group/add } { status code: 500, headers {
    "Cache-Control" = "no-cache";
    Connection = close;
    "Content-Type" = "text/html";
    Date = "Thu, 12 Jun 2014 15:39:31 GMT";
    Server = Apache;
    "Set-Cookie" = "laravel_session=.....";
    "X-Frame-Options" = SAMEORIGIN;
    "X-Powered-By" = "PHP/5.3.28, PleskLin";
} }}
 NSMutableDictionary *params = [[NSMutableDictionary alloc]
                                   initWithObjects:@[guid, groupName, description]
                                   forKeys:@[APISEND_CONTACTGROUPKEY, APISEND_CONTACTGROUPNAME, APISEND_CONTACTGROUPDESCRIPTION]];

根据您在编辑版本中添加的元素,您似乎没有以服务器期望的格式发送JSON数据

服务器需要一个带有
blog\u guid
contact\u groups
项的字典,后者本身是一个字符串数组。您必须在自己的代码中仔细遵守这些要求

在代码中,您将发送一个包含3项的字典:
guid
groupName
description
。此外,组名没有数组

试试这样的方法:

NSArray *groupNames = [[NSArray alloc] initWithObjects:groupName];
NSMutableDictionary *params = [[NSMutableDictionary alloc]
                               initWithObjects:@[guid, groupNames]
                               forKeys:@[APISEND_BLOGGUID, APISEND_CONTACTGROUPKEY]];
此外,请检查
APISEND\u CONTACTGROUPKEY
是否等于
@“contact\u groups”
APISEND\u BLOGGUID
是否等于
@“blog\u guid”


为了帮助您在仍然无法工作的情况下进行调试,请在AFNetworking将
params
变量序列化为JSON后,尝试将其值打印到控制台,并检查它是否与您在问题中描述的格式(有效的格式)相似。

我认为您可以。您的服务器向您的请求返回一个错误。代码500通常表示内部错误,例如未处理的异常。因此,它肯定与客户端无关。

您发送的是
text/html
内容,但服务器似乎不希望收到此类内容(请参见其回复:“不可接受的内容类型:text/html”)。您可能需要检查正在处理的API,看看它需要什么样的数据(可能是JSON或XML?。@romain API需要JSON数据。我尝试了示例API(没有标题),它正在工作。您是否尝试了ˋContent Type:application/JSONˋ?此时,我认为您应该发布更多关于服务器的信息:它的API,它所期望的数据,以及您试图发送的数据类型和内容(您的
params
变量)。除非服务器期望POST请求,而您正在发送另一种方法(GET、PUT、DELETE…)