2012-12-10 28 views
2

我想通过RESTKit使用XML Web服务。RESTkit通信错误

我能够连接到服务,但是我收到一个错误回如下:

error=Error Domain=AFNetworkingErrorDomain Code=-1016 "Expected content type (null), got application/xml" 

我已经尝试设置内容类型标题如下,但仍然没有得到任何改变:

AFHTTPClient* client = [[AFHTTPClient alloc] initWithBaseURL:baseURL]; 
[client setDefaultHeader:@"Content-Type" value:RKMIMETypeXML]; 

希望有人可以提供帮助。

我已经包含的代码我使用做出如下申请:

NSURL *baseURL = [NSURL URLWithString:@"http://someaddress/"]; 

RKObjectManager *objectManager = [RKObjectManager managerWithBaseURL:baseURL]; 
[objectManager setRequestSerializationMIMEType:RKMIMETypeXML]; 
[objectManager setAcceptHeaderWithMIMEType:RKMIMETypeXML]; 

RKObjectMapping *recipeMapping = [RKObjectMapping mappingForClass:[Recipe class]]; 
[recipeMapping addAttributeMappingsFromDictionary:@{ 
@"articleid" : @"ArticleId", 
@"title" : @"Title", 
@"url" : @"URL" 
}]; 


// Register our mappings with the provider using a response descriptor 
RKResponseDescriptor *responseDescriptor = [RKResponseDescriptor responseDescriptorWithMapping:recipeMapping 
                        pathPattern:nil 
                         keyPath:@"Recipes" 
                        statusCodes:[NSIndexSet indexSetWithIndex:200]]; 
[objectManager addResponseDescriptor:responseDescriptor]; 

[objectManager getObjectsAtPath:@"some/path/" 
        parameters:nil 
         success:^(RKObjectRequestOperation *operation, RKMappingResult *mappingResult) { 
          NSArray *recipes = [mappingResult array]; 
          NSLog(@"Loaded statuses: %@", recipes); 
         } 
         failure:^(RKObjectRequestOperation *operation, NSError *error) { 
          NSLog(@"Hit error: %@", [error localizedDescription]); 
         }]; 

的问题是,我仍然得到预期的内容类型(空),得到了应用/ XML的错误消息。

此外,我已经通过一个非常快速和简单的示例ASIHTTP应用程序打电话到服务的URL,这是成功的。我必须错过一些根本性的东西。

感谢

+0

您正在混合RestKit和AFNetworking。 – Martin

回答

0

像马丁提到你不需要去跟AFHTTPClient直接为这一点。

RKObjectManager* manager = [RKObjectManager managerWithBaseURL:baseURL]; 
[manager setRequestSerializationMIMEType:@"application/xml"]; 
[manager setAcceptHeaderWithMIMEType:@"application/xml"]; 
+0

感谢您的回复。我已经相应地修改了我的代码,但是这并没有什么区别,即我仍然得到Domain = AFNetworkingErrorDomain Code = -1016“预期的内容类型(null),得到application/xml”。我将用更多的代码示例更新上述内容 – JordanMazurke