gpt4 book ai didi

ios - 使用RestKit发出POST请求

转载 作者:行者123 更新时间:2023-12-01 17:54:26 24 4
gpt4 key购买 nike

我想使用RestKit发出POST请求,我使用方法postObject使用RKObjectManager。请求的主体是整数数组,JSON表示类似于[2348、9864、3645]。我为服务响应添加了RKResponseMapping并可以正常工作,但是在服务端,数组始终为null。我必须添加什么是RKRequestMapping?我想念什么?

我的代码如下所示:

- (void) sendPOSTRequest:(NSArray*) postBody{
RKObjectManager *manager = [RKObjectManager managerWithBaseURL:[NSURL URLWithString:baseUrl]];

RKObjectMapping *responseMapping = [RKObjectMapping mappingForClass:[RKJSONArrayResponse class]];

[responseMapping addAttributeMappingsFromDictionary:@{ @"Code" : @"code",
@"Success":@"success",
@"Content":@"content",
@"Error": @"error"}];

RKResponseDescriptor *responseDescriptor = [RKResponseDescriptor responseDescriptorWithMapping:responseMapping
method:RKRequestMethodPOST
pathPattern:@"/api/Requisitions/SendReport"
keyPath:nil
statusCodes:RKStatusCodeIndexSetForClass(RKStatusCodeClassSuccessful)];

RKObjectMapping *requestMapping = [RKObjectMapping mappingForClass:[NSArray class]];

RKRequestDescriptor *requestDescriptor = [RKRequestDescriptor requestDescriptorWithMapping:requestMapping
objectClass:[NSArray class]
rootKeyPath:nil,
method:RKRequestMethodPOST];

[manager addRequestDescriptor:requestDescriptor];

[manager addResponseDescriptor:responseDescriptor];

[self.manager postObject:postBody
path:@"/api/Requisitions/SendReport"
parameters:nil
success:success
failure:failure];
}

服务代码是使用Web Api用C#编写的,在这里您将始终将变量“report”接收为null。
public JsonResponse<int[]> SendReport(int[] report){}

最佳答案

您有2种方法可以解决此问题:

  • 如果您想正确完成操作,则需要为整数值数组创建RKObjectMapping,然后创建将使用新创建的RKRequestDescriptorRKObjectMapping,然后使用RKRequestDescriptor方法将此RKObjectManager添加到– addRequestDescriptor:中。这将使RestKit根据您的postObject
  • 将您要传递给 RKObjectMapping方法的对象转换为JSON
  • 我不推荐这种方式。但是,如果您只是想玩转,看看可以做些什么,那么应该将整数数组作为parameters参数传递,如下所示:

    NSArray * body = @ [@ @ 1234,@ 7475,@ 4432];

    [manager postObject:nil path:@“/ send”参数:body ...]

  • 当心,该参数参数为 NSDictionary,但是如果您传递 NSArray,它将起作用并会触发警告。
    再次,花些时间熟悉 RKRequestDescriptorRKObjectMapping

    如果您想了解有关最佳RestKit设置以及如何使用很少的ObjectManagers构建可维护应用程序的更多信息。

    关于ios - 使用RestKit发出POST请求,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20832381/

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