ios – RestKit基本URL – 域名后面的目录

ios – RestKit基本URL – 域名后面的目录,第1张

概述我正在尝试将RestKit的基本URL设置为http://example.com/api,如下所示: // initialize AFNetworking HTTPClientNSURL *baseURL = [NSURL URLWithString:@"http://example.com/api"];AFHTTPClient *client = [[AFHTTPClient alloc] 我正在尝试将RestKit的基本URL设置为http://example.com/API,如下所示:

// initialize AFNetworking httpClIEntNSURL *baseURL = [NSURL URLWithString:@"http://example.com/API"];AFhttpClIEnt *clIEnt = [[AFhttpClIEnt alloc] initWithBaseURL:baseURL];// initialize RestKitRKObjectManager *objectManager = [[RKObjectManager alloc] initWithhttpClIEnt:clIEnt];[RKObjectManager setSharedManager:objectManager];

但是由于某种原因,它只将域http://example.com保存为基本URL,后面没有后续目录.

我可以简单地在我的所有API路径调用前面添加/ API(例如/ API / events / active而不是/ events / active),但如果我最终使用不同版本的API会更容易(例如/ v1).理想情况下,我只能更改基本URL而不是所有单个路径.为什么我无法正确设置基本URL的任何想法?

非常感谢!
-Ryan

解决了:

基本URL先前存储为“http://example.com/api”,路径为“/ events”.

感谢Paul在下面的回答,正确的方法是将基本URL存储为“http://example.com/api/”,将路径存储为“事件”.

解决方法 在引擎盖下AFhttpClIEnt使用 – [NSURL URLWithString:relativeToURL:]来构建您的URL.如果您查看此方法的 docs,您会看到它需要一个尾部斜杠.你可以逃脱这个,因为 AFHTTPClient似乎为你追加了这个.

这让我们留下了这个潜在的问题

NSURL *baseURL = [NSURL URLWithString:@"https://example.com/API/"];NSLog(@"%@",[[NSURL URLWithString:@"/events" relativeToURL:baseURL] absoluteURL]);//=> https://example.com/eventsNSLog(@"%@",[[NSURL URLWithString:@"events"  relativeToURL:baseURL] absoluteURL]);//=> https://example.com/API/events

如果你预加一个正斜杠,它会敲掉任何路径组件,只使用url的主机部分.因此,请确保不要在路径中添加斜杠

总结

以上是内存溢出为你收集整理的ios – RestKit基本URL – 域名后面的目录全部内容,希望文章能够帮你解决ios – RestKit基本URL – 域名后面的目录所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/web/1012683.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2022-05-22
下一篇2022-05-22

发表评论

登录后才能评论

评论列表(0条)

    保存