1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77
|
using System.IO.Compression;
using System.Xml;
string jeton = "";
string url = "https://mon.urssaf.fr/authentifier_dpae";
string body = @"<identifiants><siret>99999999999999</siret><nom>nom</nom><prenom>prenom</prenom><motdepasse>XXXXXXX</motdepasse><service>25</service></identifiants>";
var httpClient = new HttpClient();
Console.WriteLine("Login...");
using (var httpRequest = new HttpRequestMessage(HttpMethod.Post, url))
{
httpRequest.Content = new StringContent(body, System.Text.Encoding.UTF8, "application/xml");
httpRequest.Content.Headers.ContentType = new System.Net.Http.Headers.MediaTypeHeaderValue("application/xml");
httpRequest.Content.Headers.ContentLength = body.Length;
var response = await httpClient.SendAsync(httpRequest);
jeton = await response.Content.ReadAsStringAsync();
Console.WriteLine(jeton);
Console.WriteLine("Login ok");
}
Console.WriteLine("");
var fileName = @"C:\DPAE.txt"; // ou au format XML les 2 fonctionnent
var zipFileName = @"C:\DPAE.gz";
Console.WriteLine("Zipping file...");
using FileStream originalFileStream = System.IO.File.Open(fileName, FileMode.Open);
using FileStream compressedFileStream = System.IO.File.Create(zipFileName);
using var compressor = new GZipStream(compressedFileStream, CompressionMode.Compress);
originalFileStream.CopyTo(compressor);
compressor.Dispose();
var file = File.ReadAllBytes(zipFileName);
if (file.Length > 0)
{
Console.WriteLine("File : " + file.Length.ToString());
Console.WriteLine("Zipping OK");
}
Console.WriteLine("");
Console.WriteLine("Sending DPAE...");
url = "https://depot.dpae-edi.urssaf.fr:8443/deposer-dsn/1.0/";
using (var httpRequest = new HttpRequestMessage(HttpMethod.Post, url))
{
httpRequest.Headers.Add("Authorization", "DSNLogin jeton=" + jeton);
httpRequest.Content = new ByteArrayContent(file);
httpRequest.Content.Headers.ContentEncoding.Add("gzip");
httpRequest.Content.Headers.ContentType = new System.Net.Http.Headers.MediaTypeHeaderValue("application/gzip");
httpRequest.Content.Headers.ContentLength = file.Length;
var response = await httpClient.SendAsync(httpRequest);
var ms = new MemoryStream();
var stream = await response.Content.ReadAsStreamAsync();
using (var zip = new GZipStream(stream, CompressionMode.Decompress, true))
{
var reader = new StreamReader(zip);
//outputStream.CopyTo(zip);
//StreamReader reader = new StreamReader(outputStream);
string xml = reader.ReadToEnd();
XmlDocument xDoc = new XmlDocument();
xDoc.LoadXml(xml);
var result = xDoc.SelectNodes("//envoi/envoi_bilan/envoi_etat")[0].InnerText;
var idflux = xDoc.SelectNodes("//envoi/envoi_identification/idflux")[0].InnerText;
Console.WriteLine("Envoi : " + result);
Console.WriteLine("IdFlux : " + idflux);
}
};
httpClient.Dispose(); |
Partager