gpt4 book ai didi

ios - RestKit .20 RKRequestDescriptor postObject - (400-499) 中的预期状态代码,得到 200

转载 作者:行者123 更新时间:2023-11-28 22:00:58 26 4
gpt4 key购买 nike

遇到一个奇怪的问题,我正在使用 RestKit 将 CoreData 对象发布到远程 Web 服务。远程端的一切看起来都工作正常,但 RestKit 似乎在映射响应时遇到了一些问题。

我的对象响应映射是这样的,我有一个 User 类和一个 UserProfile 一对一的关系:

 //UserProfile
RKEntityMapping * userProfileMapping =
[RKEntityMapping mappingForEntityForName:NSStringFromClass([UserProfile class])
inManagedObjectStore:[manager managedObjectStore]];
//…mapping
//User
RKEntityMapping * userMapping =
[RKEntityMapping mappingForEntityForName:NSStringFromClass([User class])
inManagedObjectStore:[manager managedObjectStore]];

//…mapping

//relationship mapping
[userMapping addPropertyMapping:[RKRelationshipMapping
relationshipMappingFromKeyPath:@"userProfile"
toKeyPath:@"userProfile"
withMapping:userProfileMapping]];

//add the response mappings for GET success
[manager addResponseDescriptorsFromArray:@[
[RKResponseDescriptor responseDescriptorWithMapping:userMapping
method:RKRequestMethodGET
pathPattern:nil
keyPath:@"currentUser"
statusCodes:RKStatusCodeIndexSetForClass(RKStatusCodeClassSuccessful)]] …rest of my mappings];

请求映射是userMapping的逆向

  RKRequestDescriptor * currentUserRequestDescriptor =
[RKRequestDescriptor requestDescriptorWithMapping:[userMapping inverseMapping]
objectClass:[User class]
rootKeyPath:@"currentUser"
method:RKRequestMethodPOST];

[manager addRequestDescriptor:currentUserRequestDescriptor];

我对 User 类的 GET 请求工作正常,POST 也工作正常。

要更新我的 User coreData 对象,我正在使用 `postObject'

[objectManager postObject:updatedUser
path:@"update"
parameters:nil
success:…handler
failure:…handler]

POST 工作正常并且对象保存在我的远程服务中。但是,我的 success 处理程序从未被调用,我也从未获得更新的 User 对象。我已登录并在响应中看到有效的 JSON。

response.body={"currentUser":{….user object}}

相反,失败被调用,它似乎想要一个 400 响应而不是我的服务响应的 200。

“NSLocalizedDescription”->“预期状态码在 (400-499) 中,得到 200”

我没有看到像在 RKResponseDescriptor 上那样在 RKRequestDescriptor 上设置预期状态代码的方法。

谢谢

最佳答案

因为您的用户响应描述符使用 method:RKRequestMethodGET,所以它不会被视为与您的 POST 请求的响应相匹配。

相反,将方法设置为RKRequestMethodAny

大概 RestKit 期待 400-499,因为您有一个响应描述符配置为处理该路径上的错误响应。

关于ios - RestKit .20 RKRequestDescriptor postObject - (400-499) 中的预期状态代码,得到 200,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25110413/

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