Форум программистов, компьютерный форум, киберфорум
C# для начинающих
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.85/13: Рейтинг темы: голосов - 13, средняя оценка - 4.85
0 / 0 / 0
Регистрация: 24.06.2015
Сообщений: 3
1

Ошибка 404, а ведь страница существует !

24.06.2015, 14:02. Показов 2624. Ответов 4
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Здравствуйте!
Помогите разобраться.

Я хочу получить код страницы:
startUrl =
http://zakupki.gov.ru/pgz/publ... nId=611525


Для этого использую стандартное решение:
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
static string GetHtml(string startUrl)
        {
            StringBuilder sb = new StringBuilder();
            byte[] buf = new byte[8192];
            HttpWebRequest request = (HttpWebRequest)WebRequest.Create(startUrl);
            //Указываем системные учетные данные приложения.
            request.Credentials = CredentialCache.DefaultCredentials;
            //Указываем сетевые учетные данные текущего контекста безопасности.
            request.Proxy.Credentials = CredentialCache.DefaultCredentials;
 
            try
            {
                HttpWebResponse response = (HttpWebResponse)request.GetResponse();
                Stream resStream = response.GetResponseStream();
                int count = 0;
                do
                {
                    count = resStream.Read(buf, 0, buf.Length);
                    if (count != 0)
                    {
                        sb.Append(Encoding.Default.GetString(buf, 0, count));
                    }
                }
                while (count > 0);
            }
            catch (WebException ex)
            {
                HttpWebResponse errorResponse = (HttpWebResponse)ex.Response;
                if (errorResponse.StatusCode == HttpStatusCode.NotFound)
                {
                    Console.WriteLine(ex.Message);
                }
            }
            return sb.ToString();
        }
Но я всегда получаю WebException (ошибка 404), а ведь страница в реальности существует !

Что надо сделать, чтобы получить код нормально?
Через Charles как надо делать не разобрался.

P.S.: html-код страницы по URL - http://zakupki.gov.ru получаю нормально
0
Лучшие ответы (1)
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
24.06.2015, 14:02
Ответы с готовыми решениями:

404 не отдается апачем в случае если страница не существует?
Так не работает <IfModule mod_rewrite.c> RewriteEngine On RewriteBase / ...

Ошибка: 404-страница не найдена
что не так делю с ссылкой- <a href="vivo.html><h4 class="service-title">виво</h4></a>...

Удаленная страница, 404 ошибка
Добрый день.Сразу к сути . В поиске выдает ссылку на удаленную страницу, хотя в файлах сайта этой...

В проекте открывается только главная страница index.php, на остальных страницах ошибка 404
В проекте открывается только главная страница index.php, на остальных страницах ошибка 404. На пк...

4
Эксперт .NET
17688 / 12873 / 3366
Регистрация: 17.09.2011
Сообщений: 21,138
24.06.2015, 14:22 2
Цитата Сообщение от gape Посмотреть сообщение
C#
1
2
3
4
//Указываем системные учетные данные приложения.
request.Credentials = CredentialCache.DefaultCredentials;
//Указываем сетевые учетные данные текущего контекста безопасности.
request.Proxy.Credentials = CredentialCache.DefaultCredentials;
Зачем?
У меня страница по ссылке просто открывается, без предоставления учетных данных.

Цитата Сообщение от gape Посмотреть сообщение
Encoding.Default.GetString
Почему Default, если страница в UTF8?
0
0 / 0 / 0
Регистрация: 24.06.2015
Сообщений: 3
24.06.2015, 14:40  [ТС] 3
C#
1
HttpWebResponse response = (HttpWebResponse)request.GetResponse();
На этой строчки не получается получить ответ.

Почему Default, если страница в UTF8?
Поменял на UTF8

У меня страница по ссылке просто открывается, без предоставления учетных данных.
Пробовал решить проблему, не помогло. (Сейчас закоментил этот участок, от него толку пока ноль).

Вопрос остается открытым. Что делать ?
0
Эксперт .NET
17688 / 12873 / 3366
Регистрация: 17.09.2011
Сообщений: 21,138
24.06.2015, 15:18 4
Лучший ответ Сообщение было отмечено gape как решение

Решение

Цитата Сообщение от gape Посмотреть сообщение
Что делать ?
Попробовал пробить фиддлером — оказывается, ему не нравится, если не указан User-Agent.
Укажите что-нибудь, он что-угодно сжует:
C#
1
2
HttpWebRequest request = (HttpWebRequest)WebRequest.Create(startUrl);
request.UserAgent = "blabla";
1
0 / 0 / 0
Регистрация: 24.06.2015
Сообщений: 3
24.06.2015, 18:31  [ТС] 5
Большое спасибо ! Это помогло.

Попробовал пробить фиддлером — оказывается, ему не нравится, если не указан User-Agent.
Укажите что-нибудь, он что-угодно сжует:
Код C#Выделить код
1
2
HttpWebRequest request = (HttpWebRequest)WebRequest.Create(startUrl);
request.UserAgent = "blabla";
Вот как в конечном варианте эта пара строк:
C#
1
2
HttpWebRequest request = (HttpWebRequest)WebRequest.Create(startUrl);
request.UserAgent = @"YaBrowser/15.6.2311.4046";
0
24.06.2015, 18:31
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
24.06.2015, 18:31
Помогаю со студенческими работами здесь

Страница 404
как сделать страницу перехватывающую ошибку 404 поясню проходит ползователь на страницу а её нет,...

Страница 404
При аудите одного сайта переходе на несуществующую страницу не показывается страница 404, сразу...

404 ошибка, как правильнее редирект: на файл 404.php или на главную?
Обнаружил что 404 ошибка не настроена. (ошибка 500) дилемма - создать файл 404 с нужным откликом...

Страница ошибки 404
Вычитал о том , как создавать обработку ошибки 404 . Сделал сначала файл .htaccess с текстом :...

Страница 404 ошибки
При добавлении @extends('layouts.front') в файл /resources/views/errors/404.blade.php на этой...

Страница не найдена 404
Пдскаите, в чем проблема? на локалке спокойно открывает страницу /about, которая лежит в корне....


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
5
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru