Member 9277685 Ответов: 1

Чтение XML-данных из url-адреса.


У меня есть Url-адрес ,как я могу читать данные из url-ответа в виде xml-данных в данных Gb, поэтому без загрузки xml-файла вниз, как я могу читать данные из этого URL-адреса и вставлять их в SQL DB.

Что я уже пробовал:

Servicepointmanager и.Expect100Continue = true;
Servicepointmanager и.SecurityProtocol = SecurityProtocolType.СС | SecurityProtocolType.Tls11 | SecurityProtocolType.Tls12 | SecurityProtocolType.Ssl3;
var httpRequest = (HttpWebRequest)WebRequest.Создать(модель.URL-адрес);
строка svcCredentials = Convert.ToBase64String(ASCIIEncoding.ASCII.GetBytes("bhnsmr0001" + ":" + "k@udQWw;b$9Ml*V"));
класса HttpRequest.Headers.Add("Authorization", "Basic" + svcCredentials);

//получение ответа с url-адреса запроса
Servicepointmanager и.Expect100Continue = true;
Servicepointmanager и.SecurityProtocol = SecurityProtocolType.СС | SecurityProtocolType.Tls11 | SecurityProtocolType.Tls12 | SecurityProtocolType.Ssl3;
// Получить ответ

var response = (HttpWebResponse)httpRequest.GetResponse();

// создайте поток для хранения содержимого ответа (в данном случае это содержимое XML-файла
var receiveStream = ответ.GetResponseStream();
StreamReader rdr = новый StreamReader(ответ.GetResponseStream()); ///// Для чтения большого объема данных требуется больше времени
string strResponse = rdr.ReadToEnd();
// создание XML-документа
var mySourceDoc = новый XmlDocument();

//загрузите файл из потока
mySourceDoc.LoadXml(strResponse);
//XmlNode nd = mySourceDoc.Функцию documentelement.SelectSingleNode("//записи");

XmlDocument xmlAPDP = новый XmlDocument();
XmlNodeReader xmlReader = новый XmlNodeReader(mySourceDoc);
DataSet dataSet = новый набор данных();
набора данных.Метод readxml(объект XmlReader);
РДР.Закрывать();
WriteXML(набор данных);

MadMyche

Так в чем же проблема? Вы получаете ответ? Вы в состоянии разобрать его?

1 Ответов

Рейтинг:
10

Member 9277685

[HttpPost]
публичная асинхронная задача<ihttpactionresult> GetxmlData(входная модель)
{
//запрос конкретной веб - страницы
Servicepointmanager и.Expect100Continue = true;
Servicepointmanager и.SecurityProtocol = SecurityProtocolType.СС | SecurityProtocolType.Tls11 | SecurityProtocolType.Tls12 | SecurityProtocolType.Ssl3;
var httpRequest = (HttpWebRequest)WebRequest.Создать(модель.URL-адрес);
строка svcCredentials = Convert.ToBase64String(ASCIIEncoding.ASCII.GetBytes("bhnsmr0001" + ":" + "k@udQWw;b$9Ml*V"));
класса HttpRequest.Headers.Add("Authorization", "Basic" + svcCredentials);

//получение ответа с url-адреса запроса
Servicepointmanager и.Expect100Continue = true;
Servicepointmanager и.SecurityProtocol = SecurityProtocolType.СС | SecurityProtocolType.Tls11 | SecurityProtocolType.Tls12 | SecurityProtocolType.Ssl3;
// Получить ответ

var response = (HttpWebResponse)httpRequest.GetResponse();

// создайте поток для хранения содержимого ответа (в данном случае это содержимое XML-файла
var receiveStream = ответ.GetResponseStream();
StreamReader rdr = новый StreamReader(ответ.GetResponseStream()); ///// Для чтения большого объема данных требуется больше времени
string strResponse = rdr.ReadToEnd();
// создание XML-документа
var mySourceDoc = новый XmlDocument();

//загрузите файл из потока
mySourceDoc.LoadXml(strResponse);
//XmlNode nd = mySourceDoc.Функцию documentelement.SelectSingleNode("//записи");

XmlDocument xmlAPDP = новый XmlDocument();
XmlNodeReader xmlReader = новый XmlNodeReader(mySourceDoc);
DataSet dataSet = новый набор данных();
набора данных.Метод readxml(объект XmlReader);
РДР.Закрывать();
WriteXML(набор данных);
}
публичная статическая строка WriteXML(DataSet ds)
{
строка cs = ConfigurationManager.Выберите["КП"].Параметр connectionString;

using (SqlConnection con = new SqlConnection(cs))
{



DataTable dtrecord = ds.Tables["запись"];



против.Открыть();

использование (SqlBulkCopy sb = new SqlBulkCopy(con))
{
sb.DestinationTableName = "запись";
sb.ColumnMappings.Add("record_Id", "record_Id");
sb.ColumnMappings.Add("категория", "категория");
sb.ColumnMappings.Add("редактор", "редактор");
sb.ColumnMappings.Add("введено", "введено");
sb.ColumnMappings.Add("подкатегория", "подкатегория");
СБ.ColumnMappings.Добавить("идентификатор", "идентификатор");
СБ.ColumnMappings.Добавить("обновление", "Обновление");
sb.WriteToServer(dtrecord);
}
}
}


Richard Deeming

Вопрос отправлен: 3 часа 10 минут назад.
Решение опубликовано: 3 часа 10 минут назад.

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

Злоупотребление сайтом подобным образом приведет только к тому, что вы будете забанены.