Call REST (GET) - Microsoft Graph API - Illegal Character in Query
0
Hello everybody, I am currently trying to call a REST (GET) service from the URL : https://graph.microsoft.com/v1.0/users?$search="displayName:{2}"&$orderby=displayName&$count=true Following connector problem is showing up: com.mendix.modules.microflowengine.MicroflowException: Illegal character in query at index 47: https://graph.microsoft.com/v1.0/users?$search="displayName:enes" at MicrosoftGraphModule.GetAzureData (CallRest : 'Call REST (GET)') Advanced stacktrace: at com.mendix.modules.microflowengine.MicroflowUtil.processException(MicroflowUtil.java:83) Caused by: java.lang.IllegalArgumentException: Illegal character in query at index 47: https://graph.microsoft.com/v1.0/users?$search="displayName:enes" at java.base/java.net.URI.create(URI.java:883) at com.mendix.http.HttpLocation.toUri(HttpLocation.scala:33) at com.mendix.integration.actions.microflow.RestCallAction.execute(RestCallAction.scala:60) at com.mendix.integration.actions.microflow.RestCallAction.execute(RestCallAction.scala:39) at com.mendix.modules.microflowengine.microflow.impl.MicroflowObject.$anonfun$execute$1(MicroflowObject.scala:32) at scala.Option.flatMap(Option.scala:283) at com.mendix.modules.microflowengine.microflow.impl.MicroflowObject.execute(MicroflowObject.scala:29) at com.mendix.modules.microflowengine.microflow.impl.MicroflowImpl.$anonfun$executeAfterBreakingIfNecessary$2(MicroflowImpl.scala:167) at scala.Option.flatMap(Option.scala:283) at com.mendix.modules.microflowengine.microflow.impl.MicroflowImpl.executeAfterBreakingIfNecessary(MicroflowImpl.scala:167) at com.mendix.modules.microflowengine.microflow.impl.MicroflowImpl.executeAction(MicroflowImpl.scala:114) at com.mendix.systemwideinterfaces.core.UserAction.execute(UserAction.java:46) at com.mendix.basis.actionmanagement.CoreActionHandlerImpl.doCall(CoreActionHandlerImpl.scala:71) at com.mendix.basis.actionmanagement.CoreActionHandlerImpl.call(CoreActionHandlerImpl.scala:48) at com.mendix.core.actionmanagement.internal.InternalCoreAction.call(InternalCoreAction.scala:25) at com.mendix.basis.actionmanagement.ActionManager.$anonfun$executeSync$2(ActionManager.scala:80) at com.mendix.util.classloading.Runner.withContextClassLoader(Runner.java:19) at com.mendix.basis.actionmanagement.ActionManager.executeSync(ActionManager.scala:79) at com.mendix.basis.actionmanagement.MicroflowCallBuilderImpl.execute(MicroflowCallBuilderImpl.scala:38) at com.mendix.webui.actions.client.ExecuteMicroflowAction.runMicroflow(ExecuteMicroflowAction.scala:76) at com.mendix.webui.actions.client.ExecuteMicroflowAction.$anonfun$apply$3(ExecuteMicroflowAction.scala:42) at com.mendix.webui.actions.client.RegularClientAction$Helpers$.$anonfun$liftEither$1(RegularClientAction.scala:29) at com.mendix.webui.actions.client.RegularClientAction$Helpers$StateHandler.$anonfun$apply$4(RegularClientAction.scala:55) at com.mendix.webui.requesthandling.helpers.StateHandling.withState(StateHandling.scala:42) at com.mendix.webui.requesthandling.helpers.StateHandling.withState$(StateHandling.scala:39) at com.mendix.webui.actions.client.RegularClientAction$Helpers$StateHandler.withState(RegularClientAction.scala:45) at com.mendix.webui.actions.client.RegularClientAction$Helpers$StateHandler.apply(RegularClientAction.scala:53) at com.mendix.webui.actions.client.RegularClientAction$Helpers$StateHandler.apply(RegularClientAction.scala:45) at com.mendix.webui.actions.client.ExecuteMicroflowAction.apply(ExecuteMicroflowAction.scala:43) at com.mendix.webui.actions.client.ExecuteMicroflowAction.apply(ExecuteMicroflowAction.scala:22) at com.mendix.webui.actions.client.RegularClientAction.$anonfun$execute$3(RegularClientAction.scala:109) at scala.util.Try$.apply(Try.scala:210) at com.mendix.webui.actions.client.RegularClientAction.$anonfun$execute$2(RegularClientAction.scala:109) at com.mendix.webui.actions.client.RegularClientAction.$anonfun$execute$2$adapted I already did try to solve the issue with using urlEncode but it still doesn’t work properly. Now this error shows up: com.mendix.modules.microflowengine.MicroflowException: Error calling REST service at MicrosoftGraphModule.GetAzureData (CallRest : 'Call REST (GET)') Advanced stacktrace: at com.mendix.integration.actions.microflow.RestCallAction.execute(RestCallAction.scala:79) Caused by: com.mendix.systemwideinterfaces.MendixRuntimeException: java.security.PrivilegedActionException: org.apache.http.client.ClientProtocolException at com.mendix.integration.util.PrivilegedUtil$$anonfun$withPrivileged$2.applyOrElse(PrivilegedUtil.scala:17) Caused by: java.security.PrivilegedActionException: null at java.base/java.security.AccessController.doPrivileged(Native Method) at com.mendix.integration.util.PrivilegedUtil$.$anonfun$withPrivileged$1(PrivilegedUtil.scala:13) at scala.util.Try$.apply(Try.scala:210) at com.mendix.integration.util.PrivilegedUtil$.withPrivileged(PrivilegedUtil.scala:13) at com.mendix.http.LoggableHttpClient.execute(LoggableHttpClient.scala:26) at com.mendix.http.HttpExecutor$.$anonfun$request$1(HttpExecutor.scala:15) at scala.util.Try$.apply(Try.scala:210) at com.mendix.http.HttpExecutor$.request(HttpExecutor.scala:15) at com.mendix.integration.actions.microflow.RestCallAction.execute(RestCallAction.scala:73) at com.mendix.integration.actions.microflow.RestCallAction.execute(RestCallAction.scala:39) at com.mendix.modules.microflowengine.microflow.impl.MicroflowObject.$anonfun$execute$1(MicroflowObject.scala:32) at scala.Option.flatMap(Option.scala:283) at com.mendix.modules.microflowengine.microflow.impl.MicroflowObject.execute(MicroflowObject.scala:29) at com.mendix.modules.microflowengine.microflow.impl.MicroflowImpl.$anonfun$executeAfterBreakingIfNecessary$2(MicroflowImpl.scala:167) at scala.Option.flatMap(Option.scala:283) at com.mendix.modules.microflowengine.microflow.impl.MicroflowImpl.executeAfterBreakingIfNecessary(MicroflowImpl.scala:167) at com.mendix.modules.microflowengine.microflow.impl.MicroflowImpl.executeAction(MicroflowImpl.scala:114) at com.mendix.systemwideinterfaces.core.UserAction.execute(UserAction.java:46) at com.mendix.basis.actionmanagement.CoreActionHandlerImpl.doCall(CoreActionHandlerImpl.scala:71) at com.mendix.basis.actionmanagement.CoreActionHandlerImpl.call(CoreActionHandlerImpl.scala:48) at com.mendix.core.actionmanagement.internal.InternalCoreAction.call(InternalCoreAction.scala:25) at com.mendix.basis.actionmanagement.ActionManager.$anonfun$executeSync$2(ActionManager.scala:80) at com.mendix.util.classloading.Runner.withContextClassLoader(Runner.java:19) at com.mendix.basis.actionmanagement.ActionManager.executeSync(ActionManager.scala:79) at com.mendix.basis.actionmanagement.MicroflowCallBuilderImpl.execute(MicroflowCallBuilderImpl.scala:38) at com.mendix.webui.actions.client.ExecuteMicroflowAction.runMicroflow(ExecuteMicroflowAction.scala:76) at com.mendix.webui.actions.client.ExecuteMicroflowAction.$anonfun$apply$3(ExecuteMicroflowAction.scala:42) at com.mendix.webui.actions.client.RegularClientAction$Helpers$.$anonfun$liftEither$1 Can somebody please help me out here? Thanks in advance! Best regards, Enes
asked
Muhammed Enes Eski
3 answers
2
Does it work when you replace
"
by
%22
answered
Joost Verhoog
0
Do you have spaces in your rest call perhaps? Try replacing spaces with %20 (url encoded space character). Also add a http header → (ConsistencyLevel: eventual). This is required as far as I know in filtered graph api calls.
answered
Lenny Puente
0
You aren’t using safe characters in your URL. As Joost mentions, “ needs to be %22.
Mendix provides the urlEncode that you can use to correctly encode the values of your parameters if you need to use them in a URL.