Форум программистов, компьютерный форум, киберфорум
C# .NET
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.86/21: Рейтинг темы: голосов - 21, средняя оценка - 4.86
 Аватар для WizarД
53 / 56 / 10
Регистрация: 07.02.2011
Сообщений: 556
Записей в блоге: 1

Как получить ответ сервера,несмотря на 403 ошибку?

14.08.2011, 23:53. Показов 4538. Ответов 10
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Собсно сабж,после некоего обновления на одном форуме при гет запросе(из программы) на форум выходит 403 ошибка(Forbidden(Запрещено)), однако отследив пакет Чарлесом, я увидел все данные,которые мне нужны.
Есть ли какой-нибудь метод обойти 403 ошибку(не в плане от неё избавиться,а получить код страницы несмотря на ошибку).

Заранее спасибо
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
14.08.2011, 23:53
Ответы с готовыми решениями:

XNet. Получить ответ несмотря на 400(404) ошибку
Как получить ответ от сервера, если код ответа 400. У меня запрос сразу в catch кидает, а ответ от сервера в переменную не записывает Как...

Ответ 403 от вебсокет сервера
Здравствуйте. На локале написал чат сервер, запустил - все сработало. Перекинул на сервер, запускаю, получаю ошибку CONNECTION_REFUSED....

Некоторые страницы отдают ответ сервера 403 хотя в браузере страница нормально загружается
Здравствуйте, на сайте с установленной cms wordpress некоторые страницы отдают ответ сервера 403 хотя в браузере страница нормально...

10
3 / 3 / 0
Регистрация: 14.08.2011
Сообщений: 8
15.08.2011, 00:01
Можно ли подробнее про Чарлес (что это?) и про метод получения страницы программой?
По этому описанию в голову приходит только то, что сервер как-то очень криво выдаёт 403, давая после этого и контент, но это слишком странно. Если же всё-таки данные приходят, а получить их не удаётся в рамках какой-то используемой реализации HTTP-клиента, то всегда можно набросать всё сразу на сокетах, разбирая ответ сервера вручную, и вытаскивая из него нужные данные.
1
 Аватар для WizarД
53 / 56 / 10
Регистрация: 07.02.2011
Сообщений: 556
Записей в блоге: 1
15.08.2011, 00:31  [ТС]
Я использую HttpWebRequest, респонсе соотвветственно.
А возможна реализация пост и гет запросов с помощью сокетов?
0
3 / 3 / 0
Регистрация: 14.08.2011
Сообщений: 8
15.08.2011, 03:49
Цитата Сообщение от WizarД Посмотреть сообщение
А возможна реализация пост и гет запросов с помощью сокетов?
Конечно же возможна, и более того - сам HttpWebRequest, скорее всего, использует стандартные .NET объекты для работы с сокетами.
Почитать о них можно в msdn, а HTTP POST/GET запросы формировать достаточно просто, если более или менее знаешь протокол. Если не знаешь, и нет времени/желания разбираться - можно взять headers из firebug/dragonfly, и их же отправлять серверу (возможно, немного подправленными - если нужно менять что-то в запросах).
Код в качестве примера привести не смогу, т.к. на шарпе почти и не кодил, но, думаю, там достаточно просто всё будет.
1
 Аватар для WizarД
53 / 56 / 10
Регистрация: 07.02.2011
Сообщений: 556
Записей в блоге: 1
15.08.2011, 13:48  [ТС]
Как узнать порт сайта?
0
 Аватар для Alessandr
20 / 21 / 1
Регистрация: 13.08.2011
Сообщений: 51
15.08.2011, 13:57
А можно проверить ип сайта, у самого сайта он один, у вашего провайдера другой, так же будет проще всего? Или с помощью nslookup смотреть)
1
 Аватар для WizarД
53 / 56 / 10
Регистрация: 07.02.2011
Сообщений: 556
Записей в блоге: 1
15.08.2011, 14:21  [ТС]
TcpClient требует ip и порт, которому будут отправляться данные.

ip-то я знаю, а вот порт не представляю как узнать
0
 Аватар для Alessandr
20 / 21 / 1
Регистрация: 13.08.2011
Сообщений: 51
15.08.2011, 14:36
Стандартный порт для всех сайтов 80.
Вот ты когда в браузере ссылочку вводишь то он переходит по 80 порту)
1
 Аватар для WizarД
53 / 56 / 10
Регистрация: 07.02.2011
Сообщений: 556
Записей в блоге: 1
15.08.2011, 15:34  [ТС]
Собсно запрос-то отправился,но получил я только Headers и 5208 и еще пару крако-зябр.

Вот код:

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
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
public string Login(string login, string Password)
        {
 
            string param = "auth_key=880ea6a14ea49e853634fbdc5015a024&referer=http%3A%2F%2Fforum.worldoftanks.ru%2F&username=" + login + "&password=" + Password + "&rememberMe=1"; ;
            string request = "POST /index.php?app=core&module=global&section=login&do=process HTTP/1.1\r\n" +
                "User-Agent: Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US) AppleWebKit/533.4 (KHTML, like Gecko) Chrome/5.0.375.70 Safari/533.4\r\n" +
                "Host: forum.worldoftanks.ru\r\n" +
                "Accept:text/html, application/xml;q=0.9, application/xhtml+xml, image/png, image/webp, image/jpeg, image/gif, image/x-xbitmap, */*;q=0.1\r\n" +
                "Accept-Language: ru-RU,ru;q=0.9,en;q=0.8\r\n" +
                "Accept-Encoding: gzip, deflate\r\n" +
                "Referer: http://forum.worldoftanks.ru/index.php?app=core&module=global&section=login\r\n" +
                "Cookie: coppa=0; itemMarking_forums_items=eJxLtDKyqs60MjQxNbY0tAYyjA2NjU0sLQ2MrMGiJobGMFFTI3MjE-taXDA2iQvj; member_id=0; pass_hash=0; anonlogin=-1;\r\n" +
                "Connection: close\r\n\r\n" +
                param;
            // Подключение к серверу
            IPHostEntry hostEntry = Dns.GetHostEntry("forum.worldoftanks.ru");
            IPAddress address = hostEntry.AddressList[0];
            IPEndPoint ipe = new IPEndPoint(address, 80);
            Socket socket = new Socket(ipe.AddressFamily, SocketType.Stream, ProtocolType.Tcp);
            
 
            try
            {
                socket.Connect(ipe);
                if (socket.Connected)
                {
                    MessageBox.Show("Connected to " + ipe.ToString());
                }
                else
                {
                    MessageBox.Show("Can not connect...");
                }
            }
            catch (SocketException ex)
            {
                MessageBox.Show(ex.Message);
            }
            Thread.Sleep(2000);
            byte[] par = Encoding.ASCII.GetBytes(param);
            Byte[] bytesSent = Encoding.ASCII.GetBytes(request);
            Byte[] bytesReceived = new Byte[1024];
 
            socket.Send(bytesSent, bytesSent.Length, 0);
            string page = "";
            int bytes = 0;
            do
            {
                bytes = socket.Receive(bytesReceived, bytesReceived.Length, 0);
                page = page + Encoding.ASCII.GetString(bytesReceived, 0, bytes);
            }
            while (bytes > 0);
            {
                MessageBox.Show(page);
                return page;
 
            }
        }
0
 Аватар для m0nax
1274 / 975 / 113
Регистрация: 12.01.2010
Сообщений: 1,971
15.08.2011, 16:26
Byte[] bytesReceived = new Byte[1024];
Уверен что страница умещается в 1 килобайт ? Выдели как минимум 100-150кб

Добавлено через 15 минут
Во вторых кодировку используй как минимум Encoding.Default либо подбери подходящую, хотя это и костыль, но для одной страницы сгодится
0
 Аватар для Etrimus
399 / 366 / 54
Регистрация: 23.05.2010
Сообщений: 716
16.08.2011, 08:15
И ещё скорее всего контент приходит пережатый в GZIP. Это стандартный формат для сжатия передаваемого тарфика.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
16.08.2011, 08:15
Помогаю со студенческими работами здесь

Как получить ответ от сервера?
Какие есть способы или программа получения кода ответа от сервера?

Как получить ответ от сервера?
Здравствуйте. Принимаю запрос с сервера вот таким кодом : HttpWebRequest WReq = WebRequest.Create("https://csgo500.com") as...

Как получить ответ от сервера?
Как мне получить ответ от сервера с помощью класса HttpResponseMessage ? если мне надо не только код страницы, но все заголовки,версия...

Как правильно получить ответ от сервера
Юзаю rad studio 2010 TcpClient1->Connect(); TcpClient1->Open(); TcpClient1->SendBuf( (void*)"\x05\x00\x15\x0C\xFF", 5); Как...

Как получить ответ от сервера (tcpclient)?
сервер слушает порт radist04ka@ sockstat | grep Temp radist Temp0 2909 3 tcp4 *:9666 *:* и отвечает...


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

Или воспользуйтесь поиском по форуму:
11
Ответ Создать тему
Новые блоги и статьи
SDL3 для Web (WebAssembly): Реализация движения на Box2D v3 - трение и коллизии с повёрнутыми стенами
8Observer8 20.02.2026
Содержание блога Box2D позволяет легко создать главного героя, который не проходит сквозь стены и перемещается с заданным трением о препятствия, которые можно располагать под углом, как верхнее. . .
Конвертировать закладки radiotray-ng в m3u-плейлист
damix 19.02.2026
Это можно сделать скриптом для PowerShell. Использование . \СonvertRadiotrayToM3U. ps1 <path_to_bookmarks. json> Рядом с файлом bookmarks. json появится файл bookmarks. m3u с результатом. # Check if. . .
Семь CDC на одном интерфейсе: 5 U[S]ARTов, 1 CAN и 1 SSI
Eddy_Em 18.02.2026
Постепенно допиливаю свою "многоинтерфейсную плату". Выглядит вот так: https:/ / www. cyberforum. ru/ blog_attachment. php?attachmentid=11617&stc=1&d=1771445347 Основана на STM32F303RBT6. На борту пять. . .
Камера Toupcam IUA500KMA
Eddy_Em 12.02.2026
Т. к. у всяких "хикроботов" слишком уж мелкий пиксель, для подсмотра в ESPriF они вообще плохо годятся: уже 14 величину можно рассмотреть еле-еле лишь на экспозициях под 3 секунды (а то и больше),. . .
И ясному Солнцу
zbw 12.02.2026
И ясному Солнцу, и светлой Луне. В мире покоя нет и люди не могут жить в тишине. А жить им немного лет.
«Знание-Сила»
zbw 12.02.2026
«Знание-Сила» «Время-Деньги» «Деньги -Пуля»
SDL3 для Web (WebAssembly): Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 12.02.2026
Содержание блога Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами и вызывать обработчики событий столкновения. . . .
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 11.02.2026
Содержание блога Библиотека SDL3 содержит встроенные инструменты для базовой работы с изображениями - без использования библиотеки SDL3_image. Пошагово создадим проект для загрузки изображения. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru