- Регистрация
- 27.08.2013
- Сообщения
- 848
- Благодарностей
- 532
- Баллы
- 93
Есть два кода
и
По факту суть этих кодов, как я понимаю одинакова. Оба делают гет-запрос по адресу майл.ру. Оба получает только тело в ответ, без заголовков. Только первый - это аналог стандартного кубика Get, второй - использует библиотеку System.Net.
Вопросы:
1. Почему так странно используются (прописывается) во втором коде это (System.Net.HttpWebRequest) и (System.Net.HttpWebResponse). С с# я немного знаком. Пишу коды в шаблонах, пользуюсь им. Но мне непонятно почему эти именно моменты нужно оборачивать в круглые скобки. При написании обычных кодов с элементами страницы (поиску, кликах и т.д.), при работах с датами, списками и таблицами я ранее не встречал такого, что нужно именно оборачивать в круглые скобки. Может кто прояснить подсказать, пожалуйста??
2. Что и как изменить нужно во втором коде, чтобы в ответ я получил и заголовки и тело (в первом коде я понимаю что нужно заменить BodyOnly на HeaderAndBody). Как это сделать именно во втором коде?
3. И третий вопрос. Почему все же ответы приходят разные от первого и второго кода? Они от одно сайта, и я вижу что суть у них одинакова. Но по сути - это 2 разных ответа. Они значительно отличаются по кол-ву строк, все ява скрипты разложены по-другому, и т.д. (т.е. отличия есть и еще).
Спасибо заранее, всем кто прояснит ситуацию!
Код:
return ZennoPoster.HttpGet(
"https://mail.ru/", // url
"", // proxy
"UTF-8", // Encoding
InterfacesLibrary.Enums.Http.ResponceType.BodyOnly, //respType
30000, // timeout
"", // cookies
project.Profile.UserAgent, // UserAgent
true, // UseRedirect
5, // MaxRedirectCount
new string[] { // AdditionalHeaders
"Accept: "+project.Profile.HTTPAccept + "",
"Accept-Encoding: "+project.Profile.AcceptEncoding + "",
"Accept-Language: "+project.Profile.AcceptLanguage + "",
},
"", // Downloadpath
false // UseOriginalUrl
);
Код:
string userAgent = "Mozilla/5.0 (Windows NT 6.1; WOW64; rv:50.0) Gecko/20100101 Firefox/50.0";
string url = "https://mail.ru/";
// GET запрос
System.Net.HttpWebRequest request = (System.Net.HttpWebRequest) System.Net.WebRequest.Create(url);
request.Method = "GET";
request.UserAgent = userAgent;
request.Headers.Add("Accept-Language", "ru-ru,ru;q=0.8,en-us;q=0.5,en;q=0.3"); // если возвращаемые данные нужны на русском языке
System.Net.HttpWebResponse response = (System.Net.HttpWebResponse) request.GetResponse();
StreamReader reader = new StreamReader(response.GetResponseStream(), Encoding.UTF8);
string resultGet = reader.ReadToEnd();
response.Close();
reader.Close();
return resultGet;
Вопросы:
1. Почему так странно используются (прописывается) во втором коде это (System.Net.HttpWebRequest) и (System.Net.HttpWebResponse). С с# я немного знаком. Пишу коды в шаблонах, пользуюсь им. Но мне непонятно почему эти именно моменты нужно оборачивать в круглые скобки. При написании обычных кодов с элементами страницы (поиску, кликах и т.д.), при работах с датами, списками и таблицами я ранее не встречал такого, что нужно именно оборачивать в круглые скобки. Может кто прояснить подсказать, пожалуйста??
2. Что и как изменить нужно во втором коде, чтобы в ответ я получил и заголовки и тело (в первом коде я понимаю что нужно заменить BodyOnly на HeaderAndBody). Как это сделать именно во втором коде?
3. И третий вопрос. Почему все же ответы приходят разные от первого и второго кода? Они от одно сайта, и я вижу что суть у них одинакова. Но по сути - это 2 разных ответа. Они значительно отличаются по кол-ву строк, все ява скрипты разложены по-другому, и т.д. (т.е. отличия есть и еще).
Спасибо заранее, всем кто прояснит ситуацию!