Hi, I am creating a protocol with HTTP POST request. I followed every instructions provided and looked through a lot of examples but still my protocol does not work.
Here's what I did:
- created a protocol with type http
- I specified the port settings
- Then I start creating the flow until it reaches the session. Timer > Group > Session
- In my POST session, I am consuming the authorization token as a form of header from a parameter which user can change. The same goes for the SQL statement, warehouseID, wait_timeout and on_wait_timeout information which if I understood correctly will be parse in the body as a form of JSON.
- Next I have defined paramaters that hold the response status code and content.
- The paramater content 107 is then linked to a QAction which will perform the data parsing.
Then I create a new element with this protocol and I configure all the details needed. I also specified the IP address of which the url destination I am consuming from.
What I expect is that the call is to be made successful and QAction is being called. But after I set the values nothing is happeing. The QAction is not being executed and status code is not showing the result such as 200ok and now the element goes into timeout immediately.
May I know what is the problem here? I followed every step I know but nothing is working.
Hi Robbie,
Thank you for the quick response. I have checked the stream viewer as you mentioned and there seems to be a request timeout.
-> 15:28:12 – Error : 12002. [ERROR_WINHTTP_TIMEOUT]
-> 15:28:12 – Get for ResponseContent () had error : Error : 12002. [ERROR_WINHTTP_TIMEOUT]
-> 15:28:12 – Continuing get for ResponseContent ()
Do you know what this means? I used the bypassProxy in the bus address and also specified an IP address in the protocol paramater proxyServer.
Hello,
As Robbie previously mentioned, starting with the StreamViewer is the best approach.
However, based on your description, it appears that the POST request you're constructing may require the body to be formatted as a JSON with a specific format.
Since you're currently using the parameter tag, the body will be constructed as follows:
statement=[VALUE]&warehouse_ID=[VALUE]...
See documentation
If the endpoint does require the body to have a specific JSON format, I recommend instead constructing the body in a QAction and saving it in a parameter.
Afterward, you can link the parameter to the session using the data tag:
<Request verb="POST" url="">
...
<Data pid="[Parameter_ID]"></Data>
...
</Request>
Hi Daniela,
Thank you for the quick response. I have checked the stream viewer as you mentioned and there seems to be a request timeout.
-> 15:28:12 – Error : 12002. [ERROR_WINHTTP_TIMEOUT]
-> 15:28:12 – Get for ResponseContent () had error : Error : 12002. [ERROR_WINHTTP_TIMEOUT]
-> 15:28:12 – Continuing get for ResponseContent ()
Do you know what this means? I used the bypassProxy in the bus address and also specified an IP address in the protocol paramater proxyServer.
Also, thank you so much for the suggestion of using the data tag instead of the paramater tag, I will give it a try once the request timeout error is fixed.
It seems that Dataminer is not able to reach the endpoint. It could be because of firewall settings, an incorrect port…
Can you check with a third party app if you are able to reach the end point? Postman is a good option in these cases.
Using postman I am able to reach the end point but only after I turn on the bypassproxy setting in Google Chrome browser settings. For Dataminer, in logs and streamviewer it shows the client is connected but there is still an issue with getting the ResponseContent() or ConnectionStatus()
Can you check with streamviewer on the element what the communication looks like.