.NET - Поток DataSet (данных XML) к zip-файлу?

Вы должны попытаться сообщить запросу вашего вызова ntlm , чтобы игнорировать проблемы ssl.

Попробуйте:

var options = {
  method: 'GET',
  username: "user",
  password: "password@#",
  uri: 'https://URL.com',
  request: {
    rejectUnauthorized: false
    // or this:
    // strictSSL : false
  },
  agent: false
};
ntlm_req.request(options).then((res)=>{
  console.log("success");
}, (err)=>{
  console.log("err");
});

Похоже, вы почти все поняли:)

Вы только забыли правильно передать параметры экземпляра запроса;)

8
задан John Saunders 10 March 2010 в 03:13
поделиться

6 ответов

Мне удалось сжать поток XML DataSet с помощью.NET 2.0's gzip сжатие.

Вот сообщение в блоге, которое я сделал несколько лет назад об этом:

Сохранение DataSets локально со сжатием

... и вот код, я добавил к частичному классу записи своего DataSet сжатый файл (сообщение в блоге имеет код чтения также):

public void WriteFile(string fileName)
{
    using (FileStream fs = new FileStream(fileName, FileMode.Create))
    {
        Stream s;
        if (Path.GetExtension(fileName) == ".cmx")
        {
            s = new GZipStream(fs, CompressionMode.Compress);
        }
        else if (Path.GetExtension(fileName) == ".cmz")
        {
            s = new DeflateStream(fs, CompressionMode.Compress);
        }
        else
        {
            s = fs;
        }
        WriteXml(s);
        s.Close();
    }
} 

Обратите внимание, что этот код использует различные схемы сжатия на основе расширения файла. Это было просто, таким образом, я мог протестировать одну схему против другого с моим DataSet.

10
ответ дан 5 December 2019 в 10:44
поделиться

Существует not-so-well-known упаковочный API, включенный с 3,5 платформами. Ссылка на сборку находится в GAC, названном WindowsBase. Система. Пространство имен IO.Packaging содержит материал для создания файлов OPC (например, OOXML), которые являются zip-файлами, содержащими xml и независимо от того, что желаемо. Вы получаете некоторый дополнительный материал, в котором Вы не нуждаетесь, но класс ZipPackage использует интерфейс потоковой передачи для добавления содержания многократно.

2
ответ дан 5 December 2019 в 10:44
поделиться

Это работает с потоками или файлами, имеет хорошую лицензию и источник: http://www.codeplex.com/DotNetZip

Вот код, чтобы сделать точно что исходный плакат, который спрашивают: запишите DataSet в zip, которая разделяется на блоки 1 МБ:

// get connection to the database
var c1= new System.Data.SqlClient.SqlConnection(connstring1);
var da = new System.Data.SqlClient.SqlDataAdapter()
{
    SelectCommand= new System.Data.SqlClient.SqlCommand(strSelect, c1)
};

DataSet ds1 = new DataSet();

// fill the dataset with the SELECT 
da.Fill(ds1, "Invoices");

// write the XML for that DataSet into a zip file (split into 1mb chunks)
using(Ionic.Zip.ZipFile zip = new Ionic.Zip.ZipFile())
{
    zip.MaxOutputSegmentSize = 1024*1024;
    zip.AddEntry(zipEntryName, (name,stream) => ds1.WriteXml(stream) );
    zip.Save(zipFileName);
}
2
ответ дан 5 December 2019 в 10:44
поделиться

Необходимо использовать Zip Xceed. Код был бы похож на это (не протестированный):

ZipArchive archive = new ZipArchive( new DiskFile( @"c:\path\file.zip" ) );

archive.SplitSize = 1024*1024;
archive.BeginUpdate();

try
{
  AbstractFile destFile = archive.GetFile( "data.xml" );

  using( Stream stream = destFile.OpenWrite( true ) )
  {
    ds.WriteXml( stream );
  }
}
finally
{
  archive.EndUpdate();
}
1
ответ дан 5 December 2019 в 10:44
поделиться

DotNetZip действительно архивирует сжатие, через потоки, но не делает многослойных zip-файлов.:(

Править: по состоянию на сентябрь 2009 DotNetZip может сделать многослойные zip-файлы.

0
ответ дан 5 December 2019 в 10:44
поделиться

платформа включает несколько классов для сжатия потоков. Одним из них является GZipStream. При поиске его, Вы найдете много хитов. Вот один из них. Я предполагаю разделять вывод на блоки, включил бы немного некоторая дополнительная работа.

1
ответ дан 5 December 2019 в 10:44
поделиться
Другие вопросы по тегам:

Похожие вопросы: