发布路径必须与 RKResponseDescriptor pathPattern 完全匹配

Posted

技术标签:

【中文标题】发布路径必须与 RKResponseDescriptor pathPattern 完全匹配【英文标题】:Post path must match exactly with RKResponseDescriptor pathPattern 【发布时间】:2014-04-21 18:35:21 【问题描述】:

所以我用于更新对象的当前服务遵循以下 URL 的格式

http://www.baseurl.com/servicemethodAddObject/transactionId?clientTime=clientTime

这就是我放在那里的代码。大概。

[objectManager addResponseDescriptor:[RKResponseDescriptor responseDescriptorWithMapping:eventResponseMapping method:RKRequestMethodGET pathPattern:@"/GetStuff" keyPath:nil statusCodes:RKStatusCodeIndexSetForClass(RKStatusCodeClassSuccessful)]];

// I'd want to add items to the URL but the parameters parameter only goes in to the post body, If I add objects to the path @"?GetStuff/?parm=Stuff&parm2=stuff2" then the response will not be mapped properly
[objectManager postObject:object path:@"/GetStuff" parameters:parms success:nil failure:nil];

似乎 RestKit 要求用于发布对象的路径和用于创建 RKDescriptor 的 pathPattern 必须完全匹配。有没有办法让restKit进行忽略其对象映射的url参数的比较?

这是正确的做法吗?在 URL 中发布对象并添加项目。

【问题讨论】:

【参考方案1】:

您可以构建路径以添加参数。使用 pathPattern:@"/GetStuff" 将匹配已构建的路径,例如:

@"/GetStuff?parm=Stuff&parm2=stuff2"

(如果添加或删除不在路径模式中的 / 字符,您将遇到问题)

【讨论】:

我必须添加和删除描述符,因为 url 总是在变化,这看起来像是一个巨大的 hack。是否可以让路径模式识别某些项目将是动态的?我认为您不能在路径模式中添加正则表达式,但这会起作用。我在rest kit github上发布,他们的解决方案是在发布时不添加url参数。 理想情况下你不会使用查询参数,不。路径模式可以带参数,查看规范 github.com/NimbusKit/sockit 但这不是用于查询参数,而是用于路径段【参考方案2】:

https://github.com/RestKit/RestKit/issues/1877

显然解决办法是不这样做。

【讨论】:

以上是关于发布路径必须与 RKResponseDescriptor pathPattern 完全匹配的主要内容,如果未能解决你的问题,请参考以下文章

将 JasperReports 与相对路径一起使用

必须掌握的路径及文件

必须掌握的路径及文件

键值编码说明

java中Windows与Unix上的文件路径问题

web中的相对路径与绝对路径