API请求斜杠转义问题:含斜杠InventoryCD调用WSE接口报错
解决Acumatica WSE接口库存项含斜杠的请求报错问题
针对你调用Acumatica库存项WSE接口时,因InventoryCD包含斜杠导致的报错,提供以下几种可行解决方案:
替换斜杠为竖线(官方推荐方案)
Acumatica的实体REST接口对路径中的特殊主键字符有专门的处理逻辑,直接将InventoryCD中的/替换为|即可。比如把WD-ON/OFF改为WD-ON|OFF,直接填入路径的{keyvalue}位置,无需额外编码。这种方式最直接有效,完全契合Acumatica的接口设计规则。改用筛选查询获取数据
如果不想修改主键值格式,可以通过筛选参数发起GET请求,绕过路径传参的限制。请求路径改为:~entity/Default/20.200.001/StockItem?$filter=InventoryCD eq 'WD-ON/OFF'
这种方式将查询条件放在URL的查询参数中,Acumatica能正确解析带斜杠的InventoryCD值,返回对应的库存项数据。调整服务器配置(不推荐,存在安全风险)
如果坚持使用URL编码后的%2F,需要调整Web服务器(如IIS)的配置:- 在站点的web.config的
<system.webServer>节点下设置allowDoubleEscaping="true" - 在
<system.web>节点添加<httpRuntime requestPathInvalidCharacters="" />
但这种方式会放宽服务器的路径字符限制,可能引入安全隐患,仅作为备选方案。
- 在站点的web.config的
写操作改用POST请求
如果是执行创建或更新库存项的操作,直接使用POST请求,将包含InventoryCD的完整数据放在请求体的JSON中,完全避免路径传参的问题,同时也符合REST接口的规范。
内容的提问来源于stack exchange,提问作者T-Rav
相关产品推荐
相关产品推荐

