G2A Many GEOs
SHARE
TWEET

Untitled

a guest Apr 9th, 2020 167 Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1.  private confirmation SendDocument(string name, string pass, string fileName, byte[] content, string targetName)
  2.         {
  3.  
  4.        
  5.         _progressManager.SetCompleted("Отправка документа " + fileName);
  6.  
  7.             var request =
  8.                 (HttpWebRequest) WebRequest.Create("https://private.bus.gov.ru:443/gmu-integration-web/services/upload.");
  9.             request.ContentType = string.Format("multipart/form-data; boundary={0}", Boundary);
  10.             request.Method = "POST";
  11.             request.KeepAlive = false;
  12.             request.ProtocolVersion = HttpVersion.Version11;
  13.  
  14.             request.Proxy = ConfigurationManager.AppSettings
  15.                 .With(collection => collection.Get("E86n.Proxy"))
  16.                 .With(s => Regex.Match(s, @"http://(\w+):(\w+)@([a-zA-Z_0-9.]+):(\d{4})"))
  17.                 .With(
  18.                     match =>
  19.                         new WebProxy(match.Groups[3].Value, Convert.ToInt32(match.Groups[4].Value))
  20.                         {
  21.                             Credentials = new NetworkCredential(match.Groups[1].Value, match.Groups[2].Value),
  22.                         });
  23.  
  24.             // вроде как отменяем необходимость добавлять сертификат казначейства
  25.             ServicePointManager.ServerCertificateValidationCallback += (sender, certificate, chain, errors) => true;
  26.             string confirmationContent = string.Empty;
  27.             string exceptionContent = string.Empty;
  28.             ServicePointManager.SecurityProtocol = SecurityProtocolType.Ssl3 | SecurityProtocolType.Tls;
  29.            
  30.             try
  31.             {
  32.                 using (var requestStream = new MemoryStream())
  33.                 {
  34.                     using (var streamWriter = new StreamWriter(requestStream))
  35.                     {
  36.                         streamWriter.WriteLine("--{0}", Boundary);
  37.                         streamWriter.WriteLine("Content-Disposition: form-data; name=\"login\"");
  38.                         streamWriter.WriteLine();
  39.                         streamWriter.WriteLine(name);
  40.                         streamWriter.WriteLine("--{0}", Boundary);
  41.  
  42.                         streamWriter.WriteLine("Content-Disposition: form-data; name=\"password\"");
  43.                         streamWriter.WriteLine();
  44.                         streamWriter.WriteLine(pass);
  45.                         streamWriter.WriteLine("--{0}", Boundary);
  46.  
  47.                         streamWriter.WriteLine(
  48.                             "Content-Disposition: form-data; name=\"document\";filename=\"{0}_{1}_{2}\"",
  49.                             fileName,
  50.                             DateTime.Now.ToString("yyyymmddhhmmss"),
  51.                             "001");
  52.                         streamWriter.WriteLine("Content-Type: text/xml");
  53.                         streamWriter.WriteLine();
  54.  
  55.                         streamWriter.WriteLine(Encoding.UTF8.GetChars(content));
  56.  
  57.                         streamWriter.WriteLine("--{0}--", Boundary);
  58.  
  59.                         streamWriter.Flush();
  60.                         request.ContentLength = streamWriter.BaseStream.Length;
  61.  
  62.                        
  63.                     }
  64.  
  65.                     using (var streamWriter = new BinaryWriter(request.GetRequestStream()))
  66.                     {
  67.                         streamWriter.Write(requestStream.ToArray());
  68.                     }
  69.                 }
  70.  
  71.                 using (
  72.                     StreamReader responseReader = request.GetResponse()
  73.                         .GetResponseStream()
  74.                         .With(stream => new StreamReader(stream)))
  75.                 {
  76.                     confirmationContent = responseReader.ReadToEnd();
  77.                 }
  78.             }
  79.             catch (Exception e)
  80.             {
  81.                 exceptionContent = e.ExpandException();
  82.                 throw;
  83.             }
  84.             finally
  85.             {
  86.                 SaveSendState(fileName, content, confirmationContent, targetName, exceptionContent);
  87.             }
  88.  
  89.             var p = request.ToString();
  90.             return confirmation.Parse(confirmationContent);
  91.         }
RAW Paste Data
Ledger Nano X - The secure hardware wallet
We use cookies for various purposes including analytics. By continuing to use Pastebin, you agree to our use of cookies as described in the Cookies Policy. OK, I Understand
Top