Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/http/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Mule CE 3.6.1 HTTP请求url编码问题_Http_Encoding_Mule - Fatal编程技术网

Mule CE 3.6.1 HTTP请求url编码问题

Mule CE 3.6.1 HTTP请求url编码问题,http,encoding,mule,Http,Encoding,Mule,我有一个Mule流,它使用Mule CE3.6.1中的HTTP请求端点。它需要使用编码的HTTP url来获取正确的数据 请注意编码的url:/items?q=%2Blabel%3ABOTV2309H*%20%2Bparent.uri%3A%5C%2Fbristol%5C%2Ftest%5C%2Fgateway%5C%2F*&行数=100&开始=0 下面是测试流程 <?xml version="1.0" encoding="UTF-8"?> <mule xmlns:http=

我有一个Mule流,它使用Mule CE3.6.1中的HTTP请求端点。它需要使用编码的HTTP url来获取正确的数据

请注意编码的url:/items?q=%2Blabel%3ABOTV2309H*%20%2Bparent.uri%3A%5C%2Fbristol%5C%2Ftest%5C%2Fgateway%5C%2F*&行数=100&开始=0

下面是测试流程

<?xml version="1.0" encoding="UTF-8"?>

<mule xmlns:http="http://www.mulesoft.org/schema/mule/http" xmlns="http://www.mulesoft.org/schema/mule/core" xmlns:doc="http://www.mulesoft.org/schema/mule/documentation"
xmlns:spring="http://www.springframework.org/schema/beans" version="CE-3.6.1"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-current.xsd
http://www.mulesoft.org/schema/mule/core http://www.mulesoft.org/schema/mule/core/current/mule.xsd
http://www.mulesoft.org/schema/mule/http http://www.mulesoft.org/schema/mule/http/current/mule-http.xsd">
<http:listener-config name="HTTP_Listener_Configuration" host="0.0.0.0" port="8089" basePath="/" usePersistentConnections="false" doc:name="HTTP Listener Configuration"/>
<http:request-config name="HTTP_Request_Config_Search" host="testserver" port="80" basePath="/index" usePersistentConnections="false" doc:name="HTTP Request Configuration"/>
<flow name="testFlow">
    <http:listener config-ref="HTTP_Listener_Configuration" path="*" allowedMethods="POST" doc:name="HTTP"/>
    <object-to-string-transformer doc:name="Object to String"/>
    <logger level="INFO" doc:name="Logger"/>


    <http:request config-ref="HTTP_Request_Config_Search" path="/items?q=%2Blabel%3ABOTV2309H*%20%2Bparent.uri%3A%5C%2Fbristol%5C%2Ftest%5C%2Fgateway%5C%2F*&amp;rows=100&amp;start=0" method="GET" doc:name="HTTP"/>
    <logger message="#[payload]" level="INFO" doc:name="Logger"/>
</flow>
</mule>
请注意%2B在两处替换为%20,这显然不会返回我需要的数据

这是HTTP端点的问题吗


谢谢

我将参数分为查询参数和uri参数。然后这个问题就解决了

<http:request config-ref="HTTP_Request_Config_Search" path="/items" method="GET" doc:name="HTTP">
        <http:request-builder>
            <http:query-param paramName="q" value="+label:BOTV2309H* +parent.uri:\/test\/gateway\/*"/>
            <http:uri-param paramName="rows" value="100"/>
            <http:uri-param paramName="start" value="0"/>
        </http:request-builder>
    </http:request>

发现其他人发布了类似的问题。
<http:request config-ref="HTTP_Request_Config_Search" path="/items" method="GET" doc:name="HTTP">
        <http:request-builder>
            <http:query-param paramName="q" value="+label:BOTV2309H* +parent.uri:\/test\/gateway\/*"/>
            <http:uri-param paramName="rows" value="100"/>
            <http:uri-param paramName="start" value="0"/>
        </http:request-builder>
    </http:request>