【问题标题】:Mule Illegal character in query resquest查询请求中的 Mule 非法字符
【发布时间】:2021-11-25 23:14:27
【问题描述】:

我尝试用 Request 做一个请求 这是 URL:(将变量与 URL 的其余部分连接起来)

vars.BaseURLOData ++ " " ++ "eq" ++ " 'x1543b14-6f7f-4dc0-a6ga-d0574e9c80ae'" as String

vars.BaseURLOData = http://31.192.103.112:8082//apisserver/api.src/ER_EasyApple_tbl?$filter=ER_application_id

完整 URL(已连接)应为:

http://31.192.103.112:8082//apiserver/api.src/ER_EasyApple_tbl?$filter=ER_application_id eq 'x1543b14-6f7f-4dc0-a6ga-d0574e9c80ae'

但它说以下错误:

Illegal character in query at index 88: 

http://31.192.103.112:8082//apiserver/api.src/EA_EasyApple_tbl?$filter=EA_application_id eq 'x1543b14-6f7f-4dc0-a6ga-d0574e9c80ae'

【问题讨论】:

  • 你如何使用我是 HTTP 连接器的 URL?
  • 我使用HTTP请求配置协议:HTTPS 主机:主机api 端口:空然后与用户进行基本认证并通过。我在其他请求中使用相同的 HTTP 配置并且它可以工作。这让我觉得问题不存在
  • 这个想法是共享请求的实际 XML(作为文本),这样我们就可以看到如何使用连接器操作。请阅读stackoverflow.com/help/how-to-ask,了解如何改进您的问题。
  • 对不起,这是 XML

标签: mule anypoint-studio


【解决方案1】:

看起来 HTTP 请求连接器不喜欢在您的 URL 中包含空格。您可以先尝试使用 DataWeave 函数 encodeURI() 对其进行 URL 编码。

话虽如此,我并不确定连接器是否需要 URL 中的查询参数。连接器中有一个单独的部分用于查询参数。

通常的形式是这样的:

            <http:request config-ref="HTTP_Request_Configuration" path="/apiserver/api.src/EA_EasyApple_tbl" method="GET" doc:name="HTTP Request">
                <http:query-params>#[
                    {
                        filter : "EA_application_id eq 'x1543b14-6f7f-4dc0-a6ga-d0574e9c80ae'"
                    }
                ]</http:query-params>

协议、主机和端口在连接器的配置中定义。

【讨论】:

  • 这种情况会怎样?
  • headers>
  • “无法将函数 (org.mule.weave.v2.runtime.core.functions.OverloadedFunctionValue@3140713c) 强制转换为字符串跟踪:在 main (Unknown)”评估表达式:“输出应用程序/java - -- { "$filter" : "EA_application_id eq 'c1343b04-6f7f-4dc0-a2ba-d0374e9c46ae'" }"。这是它显示给我的新错误
  • 尝试转义字符$。它是字符串插值运算符。试试"\$filter"
猜你喜欢
  • 1970-01-01
  • 2013-10-08
  • 1970-01-01
  • 2013-04-06
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-08-17
  • 1970-01-01
相关资源
最近更新 更多