如何删除 Mule 默认值 headers 并设置从第三方 API 收到的 Headers
How to remove Mule default headers and set Headers received from Third party API
请帮助在 mule 中设置 HTTP Headers。我想删除默认的 mule headers 并发送从第三方 API 收到的 HTTP headers 作为响应 headers
我尝试使用以下 groovy 代码。但是没用。
import org.json.JSONObject;
import java.lang.String;
import java.util.*;
import java.util.Map;
import java.util.Map.Entry;
JSONObject cResponse = new JSONObject(payload);
System.out.println("http.headers:"+message.getInboundProperty('http.headers'));
Map<String, Object> headers = (Map<String, Object>) message.getInboundProperty('http.headers');
System.out.println("111"+headers);
payload.removeHeader(payload.removeHeaders("Server"));
for (Entry<String, Object> entry : headers.entrySet()) {
String key = entry.getKey();
Object value = entry.getValue();
System.out.println("Key & Values are: "+key +" & "+ value);
message.setInvocationProperty(key, value);
}
payload=cResponse;
提前致谢!
您不需要使用 groovy 或任何 java 代码,您可以只使用删除属性和复制属性组件。
例如,此代码段会将所有入站 http 复制到出站并删除以一些 mule 通用字符串为前缀的属性。
<remove-property propertyName="MULE_*"/>
<remove-property propertyName="X_MULE*"/>
<remove-property propertyName="x-mule*"/>
<copy-properties propertyName="http.*"/>
不过,我建议您保留删除类似 Mule 的属性,但为了从入站填充出站属性,我会进行选择性复制以避免不必要的行为。你可以这样做。
<remove-property propertyName="MULE_*"/>
<remove-property propertyName="X_MULE*"/>
<remove-property propertyName="x-mule*"/>
<copy-property propertyName="Content-Length"/>
<copy-property propertyName="Transfer-Encoding"/>
<copy-property propertyName="Keep-Alive"/>
<copy-property propertyName="Connection"/>
希望对您有所帮助
此致
请帮助在 mule 中设置 HTTP Headers。我想删除默认的 mule headers 并发送从第三方 API 收到的 HTTP headers 作为响应 headers
我尝试使用以下 groovy 代码。但是没用。
import org.json.JSONObject;
import java.lang.String;
import java.util.*;
import java.util.Map;
import java.util.Map.Entry;
JSONObject cResponse = new JSONObject(payload);
System.out.println("http.headers:"+message.getInboundProperty('http.headers'));
Map<String, Object> headers = (Map<String, Object>) message.getInboundProperty('http.headers');
System.out.println("111"+headers);
payload.removeHeader(payload.removeHeaders("Server"));
for (Entry<String, Object> entry : headers.entrySet()) {
String key = entry.getKey();
Object value = entry.getValue();
System.out.println("Key & Values are: "+key +" & "+ value);
message.setInvocationProperty(key, value);
}
payload=cResponse;
提前致谢!
您不需要使用 groovy 或任何 java 代码,您可以只使用删除属性和复制属性组件。 例如,此代码段会将所有入站 http 复制到出站并删除以一些 mule 通用字符串为前缀的属性。
<remove-property propertyName="MULE_*"/>
<remove-property propertyName="X_MULE*"/>
<remove-property propertyName="x-mule*"/>
<copy-properties propertyName="http.*"/>
不过,我建议您保留删除类似 Mule 的属性,但为了从入站填充出站属性,我会进行选择性复制以避免不必要的行为。你可以这样做。
<remove-property propertyName="MULE_*"/>
<remove-property propertyName="X_MULE*"/>
<remove-property propertyName="x-mule*"/>
<copy-property propertyName="Content-Length"/>
<copy-property propertyName="Transfer-Encoding"/>
<copy-property propertyName="Keep-Alive"/>
<copy-property propertyName="Connection"/>
希望对您有所帮助
此致