【发布时间】:2018-04-29 14:06:27
【问题描述】:
以下 URI 在公共 OData 服务中触发错误:
http://services.odata.org/V4/Northwind/Northwind.svc/Suppliers?$filter=Address eq '<A'
实体类型 Supplier 包含 Edm.String 类型的属性 Address。因此,Address 的值可以包含定义中的任何 UTF-8 字符(参见 6. Primitive data types 部分)。
服务器响应:
运行时错误:服务器上发生应用程序错误。此应用程序的当前自定义错误设置阻止远程查看应用程序错误的详细信息(出于安全原因)。
这个 URI 有问题还是真的是服务器端的问题(例如 $filter 查询选项解析不当)?
【问题讨论】:
-
是的,没有“
-
您应该对这个特殊字符进行编码,请参阅下面的答案。
-
这种行为只是Northwind 演示服务的问题。大多数现代 OData 实现都会毫无问题地接受此请求,字符串分隔符中的字符不需要手动编码。