2

RESTKitを介してXMLWebサービスを利用しようとしています。

サービスに接続できますが、次のようなエラーが返されます。

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]);
                        }];

問題は、期待されるコンテンツタイプ(null)がまだ表示され、application/xmlエラーメッセージが表示されることです。

さらに、非常にすばやく簡単なサンプルASIHTTPアプリを介してサービスURLを呼び出しましたが、これは成功しています。私は何か基本的なものが欠けているに違いありません。

ありがとう

4

1 に答える 1

0

マーティンが述べたように、この時点でAFHTTPClientと直接話す必要はありません。

RKObjectManager* manager = [RKObjectManager managerWithBaseURL:baseURL];
[manager setRequestSerializationMIMEType:@"application/xml"];
[manager setAcceptHeaderWithMIMEType:@"application/xml"];
于 2012-12-10T09:13:50.137 に答える