С# WebClient DownloadString и DownloadFile дают разные результаты

Я пытаюсь получить некоторую информацию с веб-сайта, разобрать конкретный элемент, а затем продолжить свою жизнь.

Я заметил, что когда я проверяю «просмотреть исходный код» на веб-сайте, результаты совпадают с тем, что я вижу, когда использую метод DownloadFile класса WebClient. С другой стороны, когда я использую метод DownloadString, содержимое этой строки отличается как от исходного кода, так и от DownloadFile.

Мне нужно, чтобы DownloadString возвращал аналогичное содержимое для просмотра источника и DownloadFile. Какие-либо предложения? Мой соответствующий код ниже:

string criticalPathUrl = "http://blahblahblah&sessionId=" + sessionId;

WebClient wc = new WebClient();
wc.Encoding = System.Text.Encoding.UTF8;

//this is different
string urlContentsString = wc.DownloadString(criticalPathUrl);

//than this
wc.DownloadFile(criticalPathUrl, "rawDlTxt2.txt");

Изменить: пожалуйста, проигнорируйте этот вопрос, так как я просто не прокрутил его достаточно далеко. Фу. Один из тех дней.


person Captain Ryan    schedule 17.03.2017    source источник
comment
Возможно, сервер не использует UTF-8? Очень трудно понять, что еще сказать, не имея ничего более конкретного... вы даже не сказали нам, какую виду разницы вы видите.   -  person Jon Skeet    schedule 18.03.2017
comment
Используйте инструменты F12 в своем браузере, чтобы увидеть, какие заголовки передаются в ответе. Они могут влиять на то, как обрабатывается контент.   -  person JamieSee    schedule 18.03.2017
comment
Спасибо вам обоим. По-видимому, моя настоящая проблема заключалась в том, что я недостаточно далеко прокручивал консоль. Все совпадает. Не было никаких проблем. Я ужасно извиняюсь за то, что навязал всем вам мое дело с понедельника по пятницу. Ваше здоровье.   -  person Captain Ryan    schedule 18.03.2017


Ответы (1)


используйте данные загрузки вместо строки загрузки и используйте подходящую кодировку для преобразования строки, а затем сохраните файл!

подробности просмотра: https://www.pavey.me/2016/04/aspnet-c-downloadstring-vs-downloaddata.html

person linkin lu    schedule 12.04.2019
comment
Ссылка на решение приветствуется, но убедитесь, что ваш ответ полезен и без нее: добавьте контекст вокруг ссылки, чтобы ваши коллеги-пользователи имели некоторое представление о том, что это такое и почему оно здесь, а затем процитируйте наиболее релевантную часть страницы, на которую вы ссылаетесь. на случай, если целевая страница недоступна. Ответы, которые представляют собой не более чем ссылку, могут быть удалены. - person Dwhitz; 12.04.2019