На определенном сервере лежит файл который каждые пару секунд апдейтится.
Как с моего компа, программно, я могу загрузить этот файл в xml. Что я должен написать вместо ???
strin path = ????
XmlDocument xmlDoc = new XmlDocument();
xmlDoc.Load(path);
Здравствуйте, TheAteist, Вы писали:
TA>strin path = ???? TA>Как с моего компа, программно, я могу загрузить этот файл в xml. Что я должен написать вместо ???
что-то типа GetFileFromServer() а там уже использовать HttpGetRequert
Здравствуйте, OrSol, Вы писали:
OS>что-то типа GetFileFromServer() а там уже использовать HttpGetRequert
А можно пример как достать тот файл использую HttpGetRequert?
Исхожу из того, что сервер может принять некий GET-запрос и в ответ на него отдать поток данных, который состоит из содержимого вашего файла:
1. Выполняете запрос через HttpWebRequest
2. Получаете ответ на запрос — экземпляр HttpWebResponse
3. Получаете поток данных ответа через метод HttpWebResponse.GetResponseStream
4. Далее, теоретически, можно передать полученный поток методу XmlDocument.Load(Stream).
Лень ковырять реализацию этого метода рефлектором, но боюсь, что на практике Load вычитает все, что есть в потоке и попытается распарсить это в XML.
Учитывая то, что полученный stream ответа — это, ЕМНИП, NetworkStream, то данные в него могут приходить кусками, и тогда Load вполне может свалится с исключением, не дождавшись всех данных.
Если это так, вычитывайте данные ответа до конца в какой-нибудь временный MemoryStream/FileStream, а уже после скормите его методу Load.
Здравствуйте, TheAteist, Вы писали:
TA>Здравствуйте, HowardLovekraft, Вы писали:
HL>>Я имел ввиду что-то повыше уровнем. SMB или HTTP, например. TA>. Мда, сглупил
TA>Я имел ввиду по HTTP
Попробуйте просто передать методу Load URL докумкнта. MSXML с этим справляется, почему-бы и нетовскому не справиться, попробуйте.
Здравствуйте, HowardLovekraft, Вы писали:
HL>Исхожу из того, что сервер может принять некий GET-запрос и в ответ на него отдать поток данных, который состоит из содержимого вашего файла:
HL>1. Выполняете запрос через HttpWebRequest HL>2. Получаете ответ на запрос — экземпляр HttpWebResponse HL>3. Получаете поток данных ответа через метод HttpWebResponse.GetResponseStream HL>4. Далее, теоретически, можно передать полученный поток методу XmlDocument.Load(Stream).
HL>Лень ковырять реализацию этого метода рефлектором, но боюсь, что на практике Load вычитает все, что есть в потоке и попытается распарсить это в XML. HL>Учитывая то, что полученный stream ответа — это, ЕМНИП, NetworkStream, то данные в него могут приходить кусками, и тогда Load вполне может свалится с исключением, не дождавшись всех данных.
HL>Если это так, вычитывайте данные ответа до конца в какой-нибудь временный MemoryStream/FileStream, а уже после скормите его методу Load.
Я хочу пояснить где находится файл:
Файл находится на сервере и я сделал его SHARED. Когда я сделал его SHARED высветелось, что файл находится в "myserver-dc/ECalendar/qChanges.xml". А IP того сервера(myserver-dc) это my_ip. Теперь я пытаюсь достучатся до него через "\\my_ip\ECalendar\qChanges.xml", но не получается?
Почему? Правильно ли я поступил, что сделал его SHARED, чтоб добратся до него программно? Если нет, что я должен сделать?
Здравствуйте, TheAteist, Вы писали:
TA>Я хочу пояснить где находится файл: TA>Файл находится на сервере и я сделал его SHARED. Когда я сделал его SHARED высветелось, что файл находится в "myserver-dc/ECalendar/qChanges.xml". А IP того сервера(myserver-dc) это my_ip. Теперь я пытаюсь достучатся до него через "\\my_ip\ECalendar\qChanges.xml", но не получается? TA>Почему? Правильно ли я поступил, что сделал его SHARED, чтоб добратся до него программно? Если нет, что я должен сделать?
TA>Большое спасибо
Здравствуйте, TheAteist, Вы писали: TA>Я хочу пояснить где находится файл: TA>Файл находится на сервере и я сделал его SHARED. Когда я сделал его SHARED высветелось, что файл находится в "myserver-dc/ECalendar/qChanges.xml". А IP того сервера(myserver-dc) это my_ip. Теперь я пытаюсь достучатся до него через "\\my_ip\ECalendar\qChanges.xml", но не получается? TA>Почему?
Я думаю, потому, что ты вообще не понимаешь, что и как работает в компьютере. Совершенно непонятно, что там у тебя за сервер — стоит в твоём офисе, у провайдера, или ещё где-то.
Совершенно непонятно, по какому протоколу ты обращаешься к этому серверу.
TA>Правильно ли я поступил, что сделал его SHARED, чтоб добратся до него программно? Если нет, что я должен сделать?
Для начала научись его открывать у себя на машине вручную. Скорее всего, его адрес — "\\myserver-dc\ECalendar\qChanges.xml".
Как только ты научишься это делать, можешь попробовать начать скармливать получившийся путь к файлу в XmlDocument.Load().
... << RSDN@Home 1.2.0 alpha rev. 677>>
Уйдемте отсюда, Румата! У вас слишком богатые погреба.