gpt4 book ai didi

ios - 带有查询参数的 RestKit postObject

转载 作者:可可西里 更新时间:2023-11-01 06:10:51 25 4
gpt4 key购买 nike

我正在使用 RestKit 并尝试发布一个带有查询参数的对象(形式为 token=<token> 的身份验证 token ),但我不知道如何让它工作。这就是我正在做的...

首先,我将请求对象映射添加到管理器:

RKObjectMapping *requestMapping = [RKObjectMapping requestMapping];
[requestMapping addAttributeMappingsFromDictionary:@{
@"id" : @"id",
@"name" : @"name",
@"latitude" : @"latitude",
@"longitude" : @"longitude"
}];

RKRequestDescriptor *requestDescriptor = [RKRequestDescriptor requestDescriptorWithMapping:requestMapping objectClass:[Location class] rootKeyPath:nil];

[manager addRequestDescriptor:requestDescriptor];

然后我提出请求:

RKManagedObjectRequestOperation *operation = [RKObjectManager.sharedManager  appropriateObjectRequestOperationWithObject:self method:RKRequestMethodPOST path:@"/api/v1/users/3/locations" parameters:@{@"token" : token}];

[operation setCompletionBlockWithSuccess:^(RKObjectRequestOperation *operation, RKMappingResult *mappingResult) {
Location * location = (Location*)mappingResult;
self.id = Location.id;
} failure:^(RKObjectRequestOperation *operation, NSError *error) {
ALog(@"fail!");
}];

[RKObjectManager.sharedManager enqueueObjectRequestOperation:operation];

当发出请求时,Location 对象被序列化为 JSON 并放入请求正文中就好了。但是,不是将 token 添加到查询字符串,而是将其作为 JSON 添加到请求正文。

例子:

request.body={"id":0,name="test","longitude":-0.1337,"latitude":51.50998,"token":"Z3JlZ2c6MTM2MDU2OTk2MDY2OTpMajkxd01acWxjcGg1dEpFVy9IaEcwNTcyMWJkSEpnTFRTQTI2eXNlN29VOVRTc1UwV1lEU0E9PQ=="}

非常感谢任何帮助!

最佳答案

https://gist.github.com/onelittlefish/5970616 有一个要点它为 RKObjectManager 提供了一个很好的扩展,允许您将查询参数添加到 PUT 或 POST 请求。

只需将这些文件放到您的项目中,导入 header ,您就可以使用类似于@giuseppe 的答案的东西(将参数添加到正文,而不是路径)。唯一的区别是将 parameters 更改为 queryParameters - 您的调用可能看起来像这样:

[objectManager postObject:self
path:@"/api/v1/users/3/locations"
queryParameters:queryParams
success:^(RKObjectRequestOperation *operation, RKMappingResult *mappingResult) {

Location * location = (Location*)mappingResult;
self.id = Location.id;

}
failure:^(RKObjectRequestOperation *operation, NSError *error) {

ALog(@"fail!");

}
];

关于ios - 带有查询参数的 RestKit postObject,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14274033/

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