Fix chiamate httpclient al posto di webclient x GWMS (da ri-testare in generale)
This commit is contained in:
+123
-17
@@ -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
|
||||
/// <summary>
|
||||
/// Effettua chiamata URL IMMEDIATAMENTE e restituisce risultato
|
||||
/// Effettua chiamata URL IMMEDIATAMENTE e restituisce risultato LEGACY
|
||||
/// </summary>
|
||||
/// <param name="URL"></param>
|
||||
/// <returns></returns>
|
||||
[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
|
||||
|
||||
/// <summary>
|
||||
/// Effettua chiamata URL IMMEDIATAMENTE e restituisce risultato
|
||||
/// </summary>
|
||||
/// <param name="URL"></param>
|
||||
/// <returns></returns>
|
||||
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
|
||||
/// <summary>
|
||||
/// Effettua chiamata IMMEDIATAMENTE URL e restituisce risultato
|
||||
/// </summary>
|
||||
/// <param name="URL"></param>
|
||||
/// <param name="payload"></param>
|
||||
/// <returns></returns>
|
||||
[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
|
||||
|
||||
/// <summary>
|
||||
/// Effettua chiamata IMMEDIATAMENTE URL e restituisce risultato
|
||||
/// </summary>
|
||||
/// <param name="URL"></param>
|
||||
/// <param name="payload"></param>
|
||||
/// <returns></returns>
|
||||
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;
|
||||
}
|
||||
|
||||
|
||||
/// <summary>
|
||||
/// Test esistenza/creazione directory
|
||||
/// </summary>
|
||||
|
||||
@@ -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<Dictionary<string, string>>(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;
|
||||
}
|
||||
|
||||
@@ -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)
|
||||
{
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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"
|
||||
|
||||
@@ -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))
|
||||
|
||||
@@ -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())
|
||||
{
|
||||
|
||||
Reference in New Issue
Block a user