AFHTTPClient预期状态代码(200-299),得到409

时间:2013-02-16 09:54:57

标签: ios ios5 ios6

我对AFHTTPClient有一个奇怪的问题,我正在发送像

这样的POST请求
NSURL *u = [NSURL URLWithString:HTTP_SERVER];
AFHTTPClient *httpClient = [[AFHTTPClient alloc] initWithBaseURL: u];
[httpClient setParameterEncoding:AFJSONParameterEncoding];
[httpClient postPath:REGISTER
          parameters:params
             success:^(AFHTTPRequestOperation *operation, id JSON) {
                 int statusCode = [operation.response statusCode];
                 if(statusCode == 201){
                     [self performSegueWithIdentifier:@"register" sender:self];
                 }
             } failure:^(AFHTTPRequestOperation *operation, NSError *error) {
                 NSLog(@"[HTTPClient Error]: %@", error.localizedDescription);
             }];

服务器工作正常(在某些情况下服务器需要用代码409回答我,API是以这种方式做出的),但我在XCode中遇到错误,如Expected status code in (200-299), got 409 如何解决这个问题(我的双手被绑,我无法更改API和错误代码)?

1 个答案:

答案 0 :(得分:0)

基于this

你有两个选择:

  • 将状态代码409添加到可接受的状态代码列表中,并在成功块中接收(差错)

  • 处理故障区块中的状态代码409 (好)

对于后者,如果您的[operation.response statusCode]为409,则可以使用responseData中的AFURLConnectionOperationAFHTTPRequestOperation的超类,您需要为此导入其标头工作)。