<span class="Y2IQFc" lang="en">Hello community, I dare to request your help. My expertise in C# is very basic. I have an automation script that consumes an API outside of Dataminer. I am using the WebCliente class, (annexed code), but it is too constant that within the informationEvents, we receive this message: "WebException Argument: The operation has timed out". On the API Server side, more Memory, Disk, Processing resources have already been given, but the message continues to appear and that event does not reach the API. try{ WebClient clientFail = new WebClient(); string response = clientFalla.DownloadString(url_offtime); engine.GenerateInformation("TTS_casaLite_FallaLinea["+IP+"] "+ action +" Trigger offtime :" + url_offtime); } catch(ArgumentNullException ex) { engine.GenerateInformation("TTS_casaLite_FallaLinea["+IP+"] "+ action +" Exception Argument: " + ex.Message); } catch(WebException ex) { engine.GenerateInformation("TTS_casaLite_FallaLinea["+IP+"] "+ action +" WebException Argument: " + ex.Message + "|" +ex.Response + "|" + ex.Status); } catch(Exception ex) { engine.GenerateInformation("TTS_casaLite_FallaLinea["+IP+"] "+ action +" General Exception: " + ex.Message); } My question is if I am doing the API consumption correctly, or if you have any advice to improve this point and be able to avoid the exception.</span>
<span class="Y2IQFc" lang="en">The solution to the exception that I found was the following: generate a class that inherits from WebClient and the timeout property increments it. With this, the exceptions have been steadily decreasing.</span>
Hi Zabdi,
Looking at your code, your webclient should be clientFail instead of clientFalla.
clientFail.DownloadString(url_offtime);
Also if possible, it would be good to test the API call on Postman if possible to see if you are able to get the response you are expecting.
Lastly, It could be possible that you are missing some headers which you can add using
client.Headers.Add(Input header here);
Hope this helps
In that case it doesn’t seem to be issues with your script.
It is likely that the device is not responding to your API call sent. Which as mentioned previously could be due to missing headers, or it could also be due the wrong a typo in the URL.
You could also check Wireshark when sending the API call to see if you get a response
Thank you for your time in helping me. Thanks for the tips.
The typing error was when writing, I omitted letters, thanks for pointing it out.
The API does not return values.
It’s just a url to send information.
Of 10 API consumes, half succeed, but the rest return the shared exception message.