2011-10-19 60 views
0

我有一个失败的URI错误的URI。错误的URI(不是URI?):

http://localhost:3000/api/v1/company_donations.json?token=foo&donation= {&量= 101} &评论=有序

目的是该URL通过2个属性

  1. 令牌

  2. 捐赠对象具有属性量和评论

如何在URI中传递捐赠对象?

+7

是StackOverflow上的URL识别未能“完成”其实链接应该告诉你什么是错的。 - 编辑:你的“DomationObject”需要一个'ToString'来输出一个有效的URI组件。 –

+1

URL不是传递“复杂”数据结构的好地方。特别是严重的编码结构。 –

+0

它的一个轨道应用程序。我想传递2个属性的对象捐赠,所以我可以作为params [:捐赠] [:金额]和params [:捐赠] [:comment] – Pykih

回答

2

您不传递URI中的对象。你只能有属性。具体而言,{和}在URI属性的上下文中没有意义。

您需要为您想要传递的捐赠中的每个字段提供一个参数。

例如:

...?token=foo&donation-amount=101&donation-comment=Ordered 
+0

访问问题 - 我正在尝试编写一个WEB服务API。但我需要将3个对象传递给API。这是否意味着我应该在URL中传递30-40个参数?为这些愚蠢的问题道歉。 – Pykih

+1

您应该根据需要在URL上传递尽可能多的参数。对于Web服务,您可能会考虑使用xml(或YAML或JSON等)编码对象,并将它们传递到请求的主体中。这也适用于REST。使用URI来标识活动(添加,删除,等等)和正文以包含详细信息(对象) – DwB

+0

太棒了。得到它了。谢谢。 – Pykih

5

你需要URL Encode的URL。

如何做到这一点取决于您使用的语言和平台,以及您忽略了在问题和标签中指出的内容。

在这种情况下{编码到%7B}%7D,一个完整的URL:使你最终

http://localhost:3000/api/v1/company_donations.json?token=foo&donation=%7B&amount=101%7D&comment=Ordered 
相关问题