IBM App Connect Enterprise - Form Data in Rest Request Node - ibm-integration-bus

According to this IIB v10 link application/x-www-form-urlencoded form data parameters are not supported for a Rest Request Node.
https://www.ibm.com/support/knowledgecenter/SSMKHH_10.0.0/com.ibm.etools.mft.doc/bi12026_.htm
Is this still the case for IIB 11? have they included support.
Is there another way to call a back-end API having form data parameters in the swagger file?
Thanks in advance.

I got this done by a work around. Used an HTTP Request Node with the following ESQL in a compute node.
SET OutputRoot.HTTPRequestHeader."Content-Type" = 'application/x-www-form-urlencoded';
SET OutputLocalEnvironment.Destination.HTTP.QueryString.grant_type = 'client_credentials';
I know this is not an answer but this worked and retrieved my token.
Hope this helps to someone.

You will need to use BLOB domain in order to send a request with "x-www-form-urlencoded" header content-type in IIB.
Check below links for reference:
Example1
Example2

Related

Need to know any sample URL to hit and check XCPD patient discovery request

I need to hit the below provided SOAP request to any sample URL which can support patient discovery request (XCPD) protocol and respond to me back with the standard data (sample) against this request. I have attached the XML file which contains the request for XCPD patient discovery.
Any help in this regard will be highly appreciated.
XML Sample request: https://drive.google.com/file/d/1n0NvrSEahACZXXiWkra48eERel9yHWUD/view?usp=share_link
Thank you in advance.
It looks like you have been asissisted in the FHIR Community forum, so just adding the link here in case someone else has the same issue as you did: http://community.fhir.org/t/need-to-know-any-sample-url-to-hit-and-check-xcpd-patient-discovery-request/4176/2
PS: A list of available FHIR servers can be found at https://confluence.hl7.org/display/FHIR/Public+Test+Servers and is kept up to date to the extent possible.

To send file as attachment using HTTP request node in IIB

I have requirement to send a file over API as attachment. This works fine from Postman. I have to implement same using IIB using HTTP Request Node. I am not able to find any property on the node related to attachment. Can anyone suggest the solution
I want to implement this binary file upload option via HTTP request node
I assume there is already a published API that you are sending that attachment to it and you want to develop some interface from IIB to mask this API , Correct ? If it is correct then all what you need is to set the HTTPRequest Node to work in the gateway operation mode then you will have to specify the URL of the published API and of course an HTTPInput node in the beginning of the flow.

OSB 12c Send Cookie in header

thanks in advance for the help!.
Well basically i have a business service and i have to send a request and also a header, in that header i need to put a Cookie, in oracle page documentation saids
To set a cookie using a complex XML expression, which is the Oracle Service Bus default format, configure the value of the HTTP Cookie header in the outbound request using the following expression syntax:
<cookie-values xmlns="http://www.bea.com/wli/sb/transports/http"> <value>{fn:concat("cookie_name", "=", "cookie_value")}</value> </cookie-values>
in the routing component i have a transport header like this
according to the documentation i send in XQuery expression this
But everytime i send the request the log show
i try use fn-bea:inlinedXML function to return an xml type or wrap it with quotes but always return the same error
and also i try to test the business service directly with the structure according oracle's page in bus console and i succesfully send with the Cookie
Thanks in advance (sorry for my english if you see any error)
Thanks again
I had the same issue today. I solved it by adding the following Java options on setDomainEnv:
-Dcom.bea.osb.http.cookieAsNoComplexElement=true

Running jmeter to load test vaadin 13 application being return session expired meta

I am trying to run jmeter to load test vaadin13 application following the article here How to perform an Load Test/Performance Test with Vaadin 10 (is it possible with Jmeter?) which is absolutely very helpful. However, i encounter being return for(;;);[{"meta":{"sessionExpired":true}}] for every request which i am clueless.
I check that Vaadin-Security-Key is extracted correctly. Check the request data csrfToken, node is replaced with the value correctly. I am clueless on what i am missing here. Would like to seek advice what else i am missing. Thanks in advance.
Request payload (data) you are sending is JSON. I guess you have not set Content-Type header in your request and Vaadin cannot read payload you have sent, thus cannot read csrfToken which is needed to validate session.
You can set headers using HTTP Header Manager component. If all requests are sending json data, you can add this component on Thread Group level, and if only certain requests needs it you can add it to specific HTTP Sampler...
For json-type requests, content-type header should have value application/json; charset=UTF-8.
I hope this will resolve issue you are facing...
There are a lot of ids that need to be correlated when writing a test plan for VAADIN.
If the answer you're pointing at did not work for you, it will be easier to try to use this autocorrelator for Vaadin.
Disclaimer: We are providers of this solution
As you can see in your request POST data, you have CSRF Token. You need to correlate the CSRF Token and that error should resolve.

POST call in Mulesoft

I am trying to make a HTTPS POST call in mulesoft to an external API. I had read in the mulesoft documentation and also in other posts that in order to send the request body, a map has to be prepared.
Hence, i am using the "Set-Payload" to prepare a map.
Eg: #[{'key':'value'}]
When I am using the logger to display it, it prints a map (as expected).
But when the POST call is being made, i am receiving the following error:
Response code 503 mapped as failure. Message payload is of type: BufferInputStream
Payload : org.glassfish.grizzly.utils.BufferInputStream#3f8f77a
Could anyone let me know where am i going wrong?
Thanks in Advance.
The server you're trying to call is returning status 503. Have you tried calling the external API using other client SOAP/Postman/Curl?
Also check this out:
http://forums.mulesoft.com/questions/2009/consume-get-restful-service.html
You should set proper mimetype for muleMessage and set the http POST method, then it should work.
While posting the data male sure how your http is expecting the input. What ever the transformations you want to make before posting do it, finally when posting the data to http cross check your data type with the data in the server your are trying to send. Both needs to match. Then it work.
I generally try to Isolate HTTP interaction problems into two parts. One is related to request itself for e.g. URL,Method,Headers,Payload,MimeType and other should be related to transport and network interaction with Server itself. To better view the information for both of the above details use a htt[ proxy/debugger [for. e.g. Fiddler] around the traffic flowing while you make a request. This will throw more light on the stuff hindering you while making this call successfully.
You can try any of the below sugestions-:
Set payload as map, mention MIME Type as application/json and then use json to object transformer (with return class as java.util.HashMap).
Set payload as simple string. This could help.
Status code 503 implies that the server is currently unable to handle the request due to a temporary overloading or maintenance of the server. The implication is that this is a temporary condition which will be alleviated after some delay.
Please try resending the message or hit the API with Postman.
It looks like you need to change the port in the request-config to 443 since you're using HTTPS.
<http:request-config name="HTTP_Request_Configuration" protocol="HTTPS" host="jiratst.murex.com" port="443" doc:name="HTTP Request Configuration" basePath="/rest/api/2/project">
try using input {'key':'value'} in set payload instead of Array.

Resources