2017-04-17 104 views
0

我想为HTTP请求设置一个有效负载,但是当我使用groovy脚本设置有效负载时,HTTP请求会抛出一个错误:mulesoft,如何将一个flowVars(String变量)转换为一个HashMap?

错误2017-04-17 12:24:12,260 [[test]。 HTTP_Listener_Configuration.worker.01] org.mule.exception.DefaultMessagingExceptionStrategy: *********************************** ********************************************* 消息:响应代码400映射为失败。 有效载荷:[email protected] 元素:/测试/处理器/ 1/3 @测试:的test.xml:59(HTTP) 元素XML: HTTP:请求助洗剂 ------------------------------------------------- ------------------------------- 根异常堆栈跟踪: org.mule.module.http.internal.request。 ResponseValidatorException:将映射为失败的响应代码400。

我Groovy代码是:

def values = payload.toString().split('\\|') 
    message.setInvocationProperty('oauthBody',values[1]); 

然后我所做的设置有效载荷与flowVars:

#[flowVars.oauthBody] 

如果我只是把有效载荷字符串中设置有效载荷是这样的:它工作正常。

#[{'username':'test-admin','password':'Password1#','grant_type':'password','scope':'openid,profile,token,email,org'}] 

但是,当我用groovy和flowVars做它时,它给了我一个错误。

请让我知道如果我做错了什么。

回答

0

当您从flowVar设置有效负载时,它包含一个字符串。

你一套有效载荷与

#[{'username':'test-admin','password':'Password1#','grant_type':'password','scope':'openid,profile,token,email,org'}] 

导致一个HashMap。

我不知道你是如何调用你的http服务(GET,POST,...)以及另一方面有什么。我想知道为什么它在你发送一个HashMap的时候工作(之前没有把它转换为XML或者JSON)。

相关问题