- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
遇到一个奇怪的问题,我正在使用 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/
问题是,当值为 nil 时,我需要从负载中完全删除属性 @"unitprice",但如果它在请求中有值,则将其保留在那里。因此 OrderLine 的有效负载相应地如下所示:@{"id":@"orde
遇到一个奇怪的问题,我正在使用 RestKit 将 CoreData 对象发布到远程 Web 服务。远程端的一切看起来都工作正常,但 RestKit 似乎在映射响应时遇到了一些问题。 我的对象响应映射
我是一名优秀的程序员,十分优秀!