gpt4 book ai didi

ios - Restkit 无法将请求序列化为 xml

转载 作者:行者123 更新时间:2023-11-29 10:51:23 24 4
gpt4 key购买 nike

我正在使用 RestKit 0.20.0 来处理 API (xml)。

但是当我尝试发出 XML POST 请求和设置映射时,请求主体始终为 null

RKObjectManager* objectManager = [RKObjectManager managerWithBaseURL:[NSURL URLWithString:@"http://url:4465/paci/v1.0"]];

[RKMIMETypeSerialization registerClass:[RKXMLReaderSerialization class] forMIMEType:@"application/xml"];
objectManager.requestSerializationMIMEType = RKMIMETypeXML;
[objectManager setAcceptHeaderWithMIMEType:RKMIMETypeXML];

映射:

RKObjectMapping *createServerMapping = [RKObjectMapping mappingForClass:[NSMutableDictionary class]];
[createServerMapping addAttributeMappingsFromDictionary:@{ @"name": @"name",
@"description": @"description",
@"ramSize": @"ram-size",
}];

RKRequestDescriptor *createServerDescriptor = [RKRequestDescriptor requestDescriptorWithMapping:createServerMapping objectClass:[NSMutableDictionary class] rootKeyPath:@"ve" method:RKRequestMethodPOST];

[objectManager addRequestDescriptor:createServerDescriptor];

对象:

IBCreateServer *createServerRequest = [[IBCreateServer alloc] init];
createServerRequest.name = @"web40";
createServerRequest.description = @"testtest";
createServerRequest.ramSize = @"512";

发布对象:

[objectManager postObject:createServerRequest path:@"ve" parameters:nil success:^(RKObjectRequestOperation *operation, RKMappingResult *mappingResult) {} failure:^(RKObjectRequestOperation *operation, NSError *error) {}];

这个请求的结果是:

request.headers={
Accept = "application/xml";
"Accept-Language" = "en;q=1, fr;q=0.9, de;q=0.8, zh-Hans;q=0.7, zh-Hant;q=0.6, ja;q=0.5";
}
request.body=(null)

正文始终为空。我做错了什么?这仅在请求时发生,响应 XML 解析工作正常。

编辑:如果我序列化为 json,它会正常工作

最佳答案

您的请求描述符有误。应该是:

RKRequestDescriptor *createServerDescriptor = [RKRequestDescriptor requestDescriptorWithMapping:createServerMapping objectClass:[IBCreateServer class] rootKeyPath:@"ve" method:RKRequestMethodPOST];

这会告诉 RestKit 你的源类是什么,以及当你要求它发布该类的实例时它应该使用什么映射。该映射告诉 RestKit 将实例转换成什么(一个可变字典),以便它准备好序列化为 XML。

关于ios - Restkit 无法将请求序列化为 xml,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20302839/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com