diff --git a/IOB-UT-NEXT/baseUtils.cs b/IOB-UT-NEXT/baseUtils.cs
index 3346c9b4..a6317a81 100644
--- a/IOB-UT-NEXT/baseUtils.cs
+++ b/IOB-UT-NEXT/baseUtils.cs
@@ -258,7 +258,7 @@ namespace IOB_UT_NEXT
// controllo se ho un VETO all'invio...
if (dtVetoSend < DateTime.Now)
{
- answ = callUrlNow(URL);
+ answ = CallUrlGet(URL);
}
return answ;
}
@@ -275,7 +275,7 @@ namespace IOB_UT_NEXT
// controllo se ho un VETO all'invio...
if (dtVetoSend < DateTime.Now)
{
- answ = callUrlNow(URL, payload);
+ answ = CallUrlPost(URL, payload);
}
// restituisco valore!
return answ;
@@ -351,20 +351,16 @@ namespace IOB_UT_NEXT
}
}
+#if false
///
- /// Effettua chiamata URL IMMEDIATAMENTE e restituisce risultato
+ /// Effettua chiamata URL IMMEDIATAMENTE e restituisce risultato LEGACY
///
///
///
+ [Obsolete("Obsoleto passare a CallUrlGet")]
public static string callUrlNow(string URL)
{
string answ = "";
-#if false
- if (client == null)
- {
- client = new WebClientWT();
- }
-#endif
using (WebClient client = new WebClient())
{
client.Headers.Add("user-agent", CRS("appName"));
@@ -394,27 +390,75 @@ namespace IOB_UT_NEXT
}
// restituisco valore!
return answ;
+ }
+#endif
+
+ ///
+ /// Effettua chiamata URL IMMEDIATAMENTE e restituisce risultato
+ ///
+ ///
+ ///
+ public static string CallUrlGet(string URL)
+ {
+ try
+ {
+ // Gestione certificati self-signed
+ HttpClientHandler handler = new HttpClientHandler();
+ if (URL.Contains("10.74.82."))
+ {
+ handler.ServerCertificateCustomValidationCallback =
+ HttpClientHandler.DangerousAcceptAnyServerCertificateValidator;
+ }
+
+ using (var client = new HttpClient(handler))
+ {
+ // Timeout personalizzabile
+ client.Timeout = TimeSpan.FromMilliseconds(5000);
+
+ // Header custom
+ client.DefaultRequestHeaders.UserAgent.ParseAdd(CRS("appName"));
+
+ // GET sincrona
+ var response = client.GetAsync(URL).Result;
+
+ string answ = response.Content.ReadAsStringAsync().Result;
+
+ return answ;
+ }
+ }
+ catch (Exception exc)
+ {
+ int pauseSendMSec = nextPauseSendMSec;
+ dtVetoSend = DateTime.Now.AddMilliseconds(pauseSendMSec);
+
+ if (logValuePermit(URL))
+ {
+ lg.Error($"CallUrlGet | Errore chiamando {URL} | wait {pauseSendMSec} ms{Environment.NewLine}Eccezione:{Environment.NewLine}{exc}");
+ }
+
+ return "";
+ }
}
+
+
+#if false
///
/// Effettua chiamata IMMEDIATAMENTE URL e restituisce risultato
///
///
///
///
+ [Obsolete("Obsoleto passare a CallUrlGet")]
public static string callUrlNow(string URL, string payload)
{
string answ = "";
-#if false
- if (clientPayload == null)
- {
- clientPayload = new WebClientWT();
- }
-#endif
using (WebClient clientPayload = new WebClient())
{
clientPayload.Headers.Add("user-agent", $"{CRS("appName")}-PAYLOAD");
- clientPayload.Headers.Add("Content-ContextType", "application/json");
+ clientPayload.Encoding = Encoding.UTF8;
+ //clientPayload.Headers.Add("Content-ContextType", "application/json");
+ clientPayload.Headers.Add(HttpRequestHeader.ContentType, "application/json; charset=utf-8");
try
{
// problema certificati locali...
@@ -424,7 +468,7 @@ namespace IOB_UT_NEXT
{
System.Net.ServicePointManager.ServerCertificateValidationCallback = (senderX, certificate, chain, sslPolicyErrors) => { return true; };
}
- answ = clientPayload.UploadString(URL, payload);
+ answ = clientPayload.UploadString(URL, "POST", payload);
if (answ != "OK")
{
// controllo log permesso...
@@ -447,9 +491,71 @@ namespace IOB_UT_NEXT
}
}
// restituisco valore!
+ return answ;
+ }
+#endif
+
+ ///
+ /// Effettua chiamata IMMEDIATAMENTE URL e restituisce risultato
+ ///
+ ///
+ ///
+ ///
+ public static string CallUrlPost(string URL, string payload)
+ {
+ string answ = "";
+
+ try
+ {
+ // Gestione certificati self-signed
+ HttpClientHandler handler = new HttpClientHandler();
+ if (URL.Contains("10.74."))
+ {
+ handler.ServerCertificateCustomValidationCallback =
+ HttpClientHandler.DangerousAcceptAnyServerCertificateValidator;
+ }
+
+ using (var client = new HttpClient(handler))
+ {
+ // Timeout personalizzabile
+ client.Timeout = TimeSpan.FromMilliseconds(5000);
+
+ // Header custom
+ client.DefaultRequestHeaders.UserAgent.ParseAdd($"{CRS("appName")}-PAYLOAD");
+
+ // Corpo JSON
+ var content = new StringContent(payload, Encoding.UTF8, "application/json");
+
+ // POST sincrono
+ var response = client.PostAsync(URL, content).Result;
+
+ answ = response.Content.ReadAsStringAsync().Result;
+
+ // Log identico al tuo
+ if (answ != "OK")
+ {
+ if (logValuePermit($"{URL}|[{answ}]"))
+ {
+ lg.Error($"CallUrlPost | POST fallito | ans: [{answ}]:{Environment.NewLine}- URL{Environment.NewLine}{URL}{Environment.NewLine}- payload{Environment.NewLine}{payload}");
+ }
+ }
+ }
+ }
+ catch (Exception exc)
+ {
+ int pauseSendMSec = nextPauseSendMSec;
+ dtVetoSend = DateTime.Now.AddMilliseconds(pauseSendMSec);
+
+ if (logValuePermit(URL))
+ {
+ lg.Error($"CallUrlPost | Errore chiamando {URL} | wait {pauseSendMSec} ms | Dump Payload:{Environment.NewLine}{payload}{Environment.NewLine}Eccezione:{Environment.NewLine}{exc}");
+ }
+ }
+
return answ;
}
+
///
/// Test esistenza/creazione directory
///
diff --git a/IOB-WIN-FORM/Iob/Generic.Protected.cs b/IOB-WIN-FORM/Iob/Generic.Protected.cs
index 67255f36..f28a4c18 100644
--- a/IOB-WIN-FORM/Iob/Generic.Protected.cs
+++ b/IOB-WIN-FORM/Iob/Generic.Protected.cs
@@ -1682,7 +1682,7 @@ namespace IOB_WIN_FORM.Iob
{
lgInfo("chiamata URL " + url2call);
}
- var rawData = utils.callUrlNow(url2call);
+ var rawData = utils.CallUrlGet(url2call);
// deserializzo e recupero KVP...
var dictArtSrv = JsonConvert.DeserializeObject>(rawData);
// se fosse una chiamata con valore vuoto --> salvo intera tabella...
@@ -1729,7 +1729,7 @@ namespace IOB_WIN_FORM.Iob
lgInfo("chiamata URL " + url2call);
}
// รจ direttamente il risultato!
- answ = utils.callUrlNow(url2call);
+ answ = utils.CallUrlGet(url2call);
}
// restituisco
return answ;
@@ -1747,11 +1747,11 @@ namespace IOB_WIN_FORM.Iob
{
lgInfo("chiamata URL " + url2call);
}
- answ = utils.callUrlNow(url2call);
+ answ = utils.CallUrlGet(url2call);
// se vuoto faccio seconda prova...
if (string.IsNullOrEmpty(answ) || answ == "[]")
{
- answ = utils.callUrlNow(url2call);
+ answ = utils.CallUrlGet(url2call);
}
return answ;
}
@@ -4294,7 +4294,7 @@ namespace IOB_WIN_FORM.Iob
numIncr = delta > maxSendPzCountBlock + minSendPzCountBlock ? maxSendPzCountBlock : delta - minSendPzCountBlock;
// invio il num max di pezzi ammesso in blocco!
lastUrl = $"{urlAddPzCount}{numIncr}".Replace(IOBConfFull.General.CodIOB, fullCode);
- string resp = utils.callUrlNow(lastUrl);
+ string resp = utils.CallUrlGet(lastUrl);
if (!string.IsNullOrEmpty(resp))
{
// dalla risposta (come numero) capisco SE ha aggiunto i pezzi (e quanti)
@@ -4368,7 +4368,7 @@ namespace IOB_WIN_FORM.Iob
numIncr = delta > maxSendPzCountBlock + minSendPzCountBlock ? maxSendPzCountBlock : delta - minSendPzCountBlock;
// invio il num max di pezzi ammesso in blocco!
lastUrl = $"{urlAddPzCount}{numIncr}";
- string resp = utils.callUrlNow(lastUrl);
+ string resp = utils.CallUrlGet(lastUrl);
if (!string.IsNullOrEmpty(resp))
{
// dalla risposta (come numero) capisco SE ha aggiunto i pezzi (e quanti)
@@ -5294,7 +5294,8 @@ namespace IOB_WIN_FORM.Iob
lgInfo($"Chiamata di plcWriteParams da processMem2Write: {updatedPar.Count} updatedPar");
plcWriteParams(ref updatedPar);
// invio su cloud parametri!
- utils.callUrl($"{urlUpdateWriteParams}", JsonConvert.SerializeObject(updatedPar));
+ string rawData = JsonConvert.SerializeObject(updatedPar);
+ utils.CallUrlPost($"{urlUpdateWriteParams}", rawData);
lgInfo($"Notificato a server scrittura {updatedPar.Count} parametri");
}
else
@@ -5303,7 +5304,8 @@ namespace IOB_WIN_FORM.Iob
if (currWritePar.Count > 0 && (lastWriteParamsUpsert.AddMinutes(vetoSendWriteUpsert) < adesso))
{
// invio su cloud parametri!
- var res = utils.callUrl($"{urlUpdateWriteParams}", JsonConvert.SerializeObject(currWritePar));
+ string rawData = JsonConvert.SerializeObject(currWritePar);
+ var res = utils.CallUrlPost($"{urlUpdateWriteParams}", rawData);
lgInfo($"Reinviato a server stato {updatedPar.Count} parametri WRITE");
lastWriteParamsUpsert = adesso;
}
diff --git a/IOB-WIN-FORM/Iob/Generic.Public.cs b/IOB-WIN-FORM/Iob/Generic.Public.cs
index ccc9dbc7..b54c6952 100644
--- a/IOB-WIN-FORM/Iob/Generic.Public.cs
+++ b/IOB-WIN-FORM/Iob/Generic.Public.cs
@@ -3356,7 +3356,7 @@ namespace IOB_WIN_FORM.Iob
}
string rawData = JsonConvert.SerializeObject(ActiveAlarmList);
- string resp = utils.callUrlNow(lastUrl, rawData);
+ string resp = utils.CallUrlPost(lastUrl, rawData);
//string resp = utils.callUrlAsync(lastUrl, rawData);
if (resp != null)
{
diff --git a/IOB-WIN-FORM/MainForm.cs b/IOB-WIN-FORM/MainForm.cs
index b86e3e8a..12e7d59e 100644
--- a/IOB-WIN-FORM/MainForm.cs
+++ b/IOB-WIN-FORM/MainForm.cs
@@ -904,7 +904,7 @@ namespace IOB_WIN_FORM
// invio in locale!
url2call = $"{urlDownloadFile}{currIob}";
}
- rawData = utils.callUrlNow(url2call);
+ rawData = utils.CallUrlGet(url2call);
if (!string.IsNullOrEmpty(rawData))
{
// deserializzo
diff --git a/IOB-WIN-SIEMENS/DATA/CONF/PIZ03.json b/IOB-WIN-SIEMENS/DATA/CONF/PIZ03.json
index 24fd56f5..f5e04a51 100644
--- a/IOB-WIN-SIEMENS/DATA/CONF/PIZ03.json
+++ b/IOB-WIN-SIEMENS/DATA/CONF/PIZ03.json
@@ -231,7 +231,7 @@
"tipoMem": "Real",
"index": 152,
"size": 4,
- "func": "MEDIAN",
+ "func": "POINT",
"period": 60,
"factor": 1,
"unit": "C"
@@ -243,7 +243,7 @@
"tipoMem": "Real",
"index": 156,
"size": 4,
- "func": "MEDIAN",
+ "func": "POINT",
"period": 60,
"factor": 1,
"unit": "C"
diff --git a/IOB-WIN-SIEMENS/IobSiemens/SiemensFape.cs b/IOB-WIN-SIEMENS/IobSiemens/SiemensFape.cs
index fcda93d6..ec79edac 100644
--- a/IOB-WIN-SIEMENS/IobSiemens/SiemensFape.cs
+++ b/IOB-WIN-SIEMENS/IobSiemens/SiemensFape.cs
@@ -198,7 +198,7 @@ namespace IOB_WIN_SIEMENS.IobSiemens
{
try
{
- currODL = utils.callUrlNow(urlGetCurrODL);
+ currODL = utils.CallUrlGet(urlGetCurrODL);
#if false
// se nullo riprovo...
if (string.IsNullOrEmpty(currODL))
diff --git a/IOB-WIN-SIEMENS/IobSiemens/SiemensTorri.cs b/IOB-WIN-SIEMENS/IobSiemens/SiemensTorri.cs
index e7dfb655..efcdbbe0 100644
--- a/IOB-WIN-SIEMENS/IobSiemens/SiemensTorri.cs
+++ b/IOB-WIN-SIEMENS/IobSiemens/SiemensTorri.cs
@@ -399,7 +399,7 @@ namespace IOB_WIN_SIEMENS.IobSiemens
if (DateTime.Now >= lastPzCountSend.AddMilliseconds(pzCountDelay))
{
// Salvo il contapezzi della macchina
- retVal = utils.callUrlNow(urlSetPzCountMAC + contapezziPLC.ToString());
+ retVal = utils.CallUrlGet(urlSetPzCountMAC + contapezziPLC.ToString());
// verifica se tutto OK, ovvero conferma i pezzi inviati
if (retVal != contapezziPLC.ToString())
{
@@ -427,7 +427,7 @@ namespace IOB_WIN_SIEMENS.IobSiemens
}
// Salvo il contapezzi della macchina
- retVal = utils.callUrlNow(urlSetPzCount + contapezziIOB.ToString());
+ retVal = utils.CallUrlGet(urlSetPzCount + contapezziIOB.ToString());
// verifica se tutto OK, ovvero conferma i pezzi inviati
if (retVal != contapezziIOB.ToString())
{
@@ -444,7 +444,7 @@ namespace IOB_WIN_SIEMENS.IobSiemens
}
// invio a server contapezzi (aggiornato)
- retVal = utils.callUrlNow(urlSetPzCount + contapezziIOB.ToString());
+ retVal = utils.CallUrlGet(urlSetPzCount + contapezziIOB.ToString());
// verifica se tutto OK
if (retVal != contapezziIOB.ToString())
{