Форум программистов, компьютерный форум, киберфорум
C# .NET
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.96/25: Рейтинг темы: голосов - 25, средняя оценка - 4.96
12 / 12 / 0
Регистрация: 25.02.2012
Сообщений: 71

Перейти на сайт через java посредством GET запроса

21.03.2012, 12:44. Показов 5108. Ответов 11
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
сори за название темы, не знал как правильно написать.
посылая запрос Get получаю html код страницы с java скиптом, как заставить GET перейти на эту ссылку?
то есть задаю:
C#
1
2
3
4
5
6
7
8
9
HttpWebRequest request = (HttpWebRequest)WebRequest.Create("http://****");
 
            request.UserAgent = "Mozilla/5.0";
            request.AllowAutoRedirect = true;
            request.Referer = "http://****/";
            HttpWebResponse response = (HttpWebResponse)request.GetResponse();
 
            string html = new StreamReader(response.GetResponseStream(),
                                           Encoding.UTF8).ReadToEnd();
получаю:
HTML5
1
2
3
4
5
6
7
8
9
10
11
                       <html>
                        <head>
                            <title>http://****</title>
                            <script>location.replace("/****/");</script>
                        </head>
                        <body>
                        <noscript>�������� Java Script<br/></noscript>
                        http://******
                        <!-- Yandex.Metrika counter --><div style="display:none;"><script type="text/javascript">(function(w, c) { (w[c] = w[c] || []).push(function() { try { w.yaCounter10831852 = new Ya.Metrika({id:10831852, enableAll: true, trackHash:true, ut:"noindex"}); } catch(e) { } }); })(window, "yandex_metrika_callbacks");</script></div><script src="//mc.yandex.ru/metrika/watch_visor.js" type="text/javascript" defer="defer"></script><noscript><div><img src="//mc.yandex.ru/watch/10831852?ut=noindex" style="position:absolute; left:-9999px;" alt="" /></div></noscript><!-- /Yandex.Metrika counter -->
                        </body>
                        </html>
как перейти на
HTML5
1
<title>http://****</title>
подскажите как это сделать

Добавлено через 15 часов 11 минут
немного побродив по просторам, понял, что неверно написал.
как при получении ответа в виде location.replace("/****/");
перейти по нему посредством GET запроса
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
21.03.2012, 12:44
Ответы с готовыми решениями:

Обращение клиента на сайт посредством пост-запроса: на какую из сторон ложится обязанность редиректа
Доброго всем времени суток! Для начала: я же правильно понимаю, что пост запрос не подразумевает редирект? это просто возможность...

Как загружать фалы в Dropbox посредством запроса файлов через api?
Добырый день! Помогите пожалуйста, никак не могу найти инфу, нужно загружать фалы в dropbox посредством запроса файлов, как это сделать...

Отображение структуры БД посредством запроса
Пытаюсь вывести имеющие таблицы, их поля, тип, длину и т.д. С помощью интернета получился такой запрос SELECT sysobjects.name AS...

11
12 / 12 / 0
Регистрация: 25.02.2012
Сообщений: 71
28.03.2012, 00:15  [ТС]
это такая проблема?... Что-то я никак не могу найти решение. Кто натолкнет на мысли?
0
107 / 107 / 9
Регистрация: 19.12.2010
Сообщений: 417
28.03.2012, 01:14
Предположим, что в переменной html уже готовый html, тогда используем регулярные выражения. Для этого:
1. Подключаем пространство имён:
C#
1
using System.Text.RegularExpressions;
2. После получения html пишем:
C#
1
2
3
4
5
6
7
8
9
var m = Regex.Match(html, @"<script>location\.replace\(""(?<link>.*?)""\);</script>");
if (m.Success) //Найдено
{
    //теперь в m.Groups["link"].Value содержится ссылка
}
else //не найдено
{
    //обрабатка в случае, если не найдено ссылки.
}
0
12 / 12 / 0
Регистрация: 25.02.2012
Сообщений: 71
28.03.2012, 23:27  [ТС]
а что с ним делать дальше?
уверен, что неправильно, но все же
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
 private void button2_Click(object sender, EventArgs e)
        {
            HttpWebRequest request = (HttpWebRequest)WebRequest.Create(textBox1.Text);
            request.Proxy = new WebProxy("207.86.135.136", 3128);
            request.Method = "GET";
            request.UserAgent = "Mozilla/5.0 (Windows NT 6.1) AppleWebKit/535.7 (KHTML, like Gecko) Chrome/16.0.912.75 Safari/535.7";
            request.ContentType = "application/json; charset=utf-8";
            request.Referer = textBox4.Text;
            request.AllowAutoRedirect = true;
 
            string html = string.Empty;
 
            using (HttpWebResponse response = (HttpWebResponse)request.GetResponse())
            {
                using (StreamReader myStreamReader = new StreamReader(response.GetResponseStream(), Encoding.UTF8))
                {
                    html = myStreamReader.ReadToEnd();
                }
            }
 
            richTextBox2.Text = html;
            webBrowser1.DocumentText = html;
            
            var m = Regex.Match(html, @"<script>location\.replace\(""(?<link>.*?)""\);</script>");
            if (m.Success) //Найдено
            {
                HttpWebRequest req = (HttpWebRequest)WebRequest.Create("http:/" + m.Groups["link"].Value);
                req.Method = "GET";
                req.UserAgent = "Mozilla/5.0 (Windows NT 6.1) AppleWebKit/535.7 (KHTML, like Gecko) Chrome/16.0.912.75 Safari/535.7";
                req.ContentType = "application/json; charset=utf-8";
                req.Referer = textBox4.Text;
                req.AllowAutoRedirect = true;
                string html1 = string.Empty;
 
                using (HttpWebResponse resp = (HttpWebResponse)req.GetResponse())
                {
                    using (StreamReader myStreamReader = new StreamReader(resp.GetResponseStream(), Encoding.UTF8))
                    {
                        html1 = myStreamReader.ReadToEnd();
                    }
                }
 
                richTextBox1.Text = html1;
                webBrowser1.DocumentText = html1;
                //теперь в m.Groups["link"].Value содержится ссылка
            }
            else //не найдено
            {
                //обрабатка в случае, если не найдено ссылки.
            }
        }
0
107 / 107 / 9
Регистрация: 19.12.2010
Сообщений: 417
28.03.2012, 23:52
Да, примерно так, как Вы прислали в личку. Сам проект не смотрел, но...
Скажите, в этом:
HTML5
1
<script>location.replace("/****/");</script>
/****/ уже содержит http:// или нет?
Если нет, то Вам надо добавить ещё один слеш во втором запросе, вот так:
C#
1
HttpWebRequest req = (HttpWebRequest)WebRequest.Create("http://" + m.Groups["link"].Value);
Если да, то изменить так:
C#
1
HttpWebRequest req = (HttpWebRequest)WebRequest.Create(m.Groups["link"].Value);
0
12 / 12 / 0
Регистрация: 25.02.2012
Сообщений: 71
29.03.2012, 00:28  [ТС]
я так и записал.
но. в линк мы имеем /52274/ и все
если пытаемся зайти на http://54556/ то ошибка, Невозможно соединиться с удаленным сервером
если так идем http:///52274/ ошибка урл.
зайти надо на сайт http://addf.ru/52274/

HTML5
1
2
3
4
5
6
7
8
9
10
11
GET /52274/ HTTP/1.1
Host: addf.ru
Connection: keep-alive
User-Agent: Mozilla/5.0 (Windows NT 6.1) AppleWebKit/535.11 (KHTML, like Gecko) Chrome/17.0.963.83 Safari/535.11
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
Referer: http://addf.ru/52274/
Accept-Encoding: gzip,deflate,sdch
Accept-Language: ru-RU,ru;q=0.8,en-US;q=0.6,en;q=0.4
Accept-Charset: windows-1251,utf-8;q=0.7,*;q=0.3
Cookie: 1332918107URL=%2F52274%2F; 1332918107UA=Mozilla%2F5.0+%28Windows+NT+6.1%29+AppleWebKit%2F535.11+%28KHTML%2C+like+Gecko%29+Chrome%2F17.0.963.83+Safari%2F535.11; 1332918107IP=хх.ххх.хх.хх; second=1332918107
If-Modified-Since: Wed, 28 Mar 2012 07:01:47 GMT
0
107 / 107 / 9
Регистрация: 19.12.2010
Сообщений: 417
29.03.2012, 00:46
Хорошо... Откуда можно узнать, что сайт именно http://addf.ru/ ?
Может из:
HTML5
1
<title>http://****</title>
Нет?
Я имею ввиду, где в ответе указан адрес сайта http://addf.ru/ для того, чтобы объединить http://addf.ru/ и 54556?
0
12 / 12 / 0
Регистрация: 25.02.2012
Сообщений: 71
29.03.2012, 00:55  [ТС]
http://addf.ru/52274/ это начальный УРЛ, который и дает ответ на редирект.
0
107 / 107 / 9
Регистрация: 19.12.2010
Сообщений: 417
29.03.2012, 01:32
Может быть как-то так...?
C#
1
HttpWebRequest req = (HttpWebRequest)WebRequest.Create("http://" + request.RequestUri.Host + m.Groups["link"].Value);
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
private void button2_Click(object sender, EventArgs e)
{
    HttpWebRequest request = (HttpWebRequest)WebRequest.Create(textBox1.Text);
    request.Proxy = new WebProxy("207.86.135.136", 3128);
    request.Method = "GET";
    request.UserAgent = "Mozilla/5.0 (Windows NT 6.1) AppleWebKit/535.7 (KHTML, like Gecko) Chrome/16.0.912.75 Safari/535.7";
    request.ContentType = "application/json; charset=utf-8";
    request.Referer = textBox4.Text;
    request.AllowAutoRedirect = true;
 
    string html = string.Empty;
 
    using (HttpWebResponse response = (HttpWebResponse)request.GetResponse())
    {
        using (StreamReader myStreamReader = new StreamReader(response.GetResponseStream(), Encoding.UTF8))
        {
            html = myStreamReader.ReadToEnd();
        }
    }
 
    richTextBox2.Text = html;
    webBrowser1.DocumentText = html;
            
    var m = Regex.Match(html, @"<script>location\.replace\(""(?<link>.*?)""\);</script>");
    if (m.Success) //Найдено
    {
        HttpWebRequest req = (HttpWebRequest)WebRequest.Create("http://" + request.RequestUri.Host + m.Groups["link"].Value);
        req.Method = "GET";
        req.UserAgent = "Mozilla/5.0 (Windows NT 6.1) AppleWebKit/535.7 (KHTML, like Gecko) Chrome/16.0.912.75 Safari/535.7";
        req.ContentType = "application/json; charset=utf-8";
        req.Referer = textBox4.Text;
        req.AllowAutoRedirect = true;
        string html1 = string.Empty;
 
        using (HttpWebResponse resp = (HttpWebResponse)req.GetResponse())
        {
            using (StreamReader myStreamReader = new StreamReader(resp.GetResponseStream(), Encoding.UTF8))
            {
                html1 = myStreamReader.ReadToEnd();
            }
        }
 
        richTextBox1.Text = html1;
        webBrowser1.DocumentText = html1;
        //теперь в m.Groups["link"].Value содержится ссылка
    }
    else //не найдено
    {
        //обрабатка в случае, если не найдено ссылки.
    }
}
0
12 / 12 / 0
Регистрация: 25.02.2012
Сообщений: 71
29.03.2012, 01:44  [ТС]
и попадаем на ту же страницу редиректа
0
107 / 107 / 9
Регистрация: 19.12.2010
Сообщений: 417
29.03.2012, 03:25
Походу, сайт выдаёт сам редирект на неё же или нет?

Добавлено через 9 минут
я имею ввиду результат запроса http://addf.ru/52274/ таков:
HTML5
1
2
3
4
5
6
7
8
9
10
11
<html>
<head>
    <title>http://addf.ru/52274/</title>
    <script>location.replace("/52274/");</script>
</head>
<body>
<noscript>???????? Java Script<br/></noscript>
http://addf.ru/52274/
<!-- Yandex.Metrika counter --><div style="display:none;"><script type="text/javascript">(function(w, c) { (w[c] = w[c] || []).push(function() { try { w.yaCounter10831852 = new Ya.Metrika({id:10831852, enableAll: true, trackHash:true, ut:"noindex"}); } catch(e) { } }); })(window, "yandex_metrika_callbacks");</script></div><script src="//mc.yandex.ru/metrika/watch_visor.js" type="text/javascript" defer="defer"></script><noscript><div><img src="//mc.yandex.ru/watch/10831852?ut=noindex" style="position:absolute; left:-9999px;" alt="" /></div></noscript><!-- /Yandex.Metrika counter -->
</body>
</html>
То есть он опять переадресовывает НА ЭТУ ЖЕ страницу:
HTML5
1
<script>location.replace("/52274/");</script>
Может это специально так несколько раз переадресовывает в качестве защиты? Просто несколько раз проследовать по ссылке пока m.Success...?
0
12 / 12 / 0
Регистрация: 25.02.2012
Сообщений: 71
29.03.2012, 11:48  [ТС]
даже если сделать так, то просто тупит пока не выйдет таймаут к серверу(
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
29.03.2012, 11:48
Помогаю со студенческими работами здесь

Получение ID посредством SQL-запроса
$id=intval($_GET); $sql=$mysqli-&gt;query(&quot;SELECT `id`,`icq` FROM `&quot;.prefix.&quot;shinfo` WHERE id='&quot;.intval($_GET).&quot;'&quot;) or...

Авторизация посредством POST-запроса
Доброго времени суток дорогие формучане. Назрела проблемка, нужно реализовать авторизацию в программе, то есть пользователь вводит пасс и...

Когда хочу запустить .class посредством java, выскакивает ошибка: "The system cannot find the file java.exe"
Всем привет, когда хочу запустить .class по средствам java, выскакивает ошибка The system cannot find the file...

Изменение содержимого посредством sql запроса
Всем доброго времени суток, работаю с бд Access, есть 1 таблица в ней 2 ячейки, которые обновляются посредством определенных действий,...

Авторизация на сайте посредством Post запроса
Авторизация на сайте по средствам Post запроса На сайте есть форма входа: &lt;form action=&quot;site.com/login.php&quot;...


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

Или воспользуйтесь поиском по форуму:
12
Ответ Создать тему
Новые блоги и статьи
Midnight Chicago Blues
kumehtar 24.03.2026
Такой Midnight Chicago Blues, знаешь?. . Когда вечерние улицы становятся ночными, а ты не можешь уснуть. Ты идёшь в любимый старый бар, и бармен наливает тебе виски. Ты смотришь на пролетающие. . .
Контроль уникальности заводского номера - вариант №2
Maks 24.03.2026
В отличие от предыдущего варианта добавлено прерывание циклов, также добавлены новые переменные для сохранения контекста ошибки перед прерыванием цикла: Процедура ПередЗаписью(Отказ, РежимЗаписи,. . .
SDL3 для Desktop (MinGW): Вывод текста со шрифтом TTF с помощью библиотеки SDL3_ttf на Си и C++
8Observer8 24.03.2026
Содержание блога Финальные проекты на Си и на C++: finish-text-sdl3-c. zip finish-text-sdl3-cpp. zip
Жизнь в неопределённости
kumehtar 23.03.2026
Жизнь — это постоянное существование в неопределённости. Например, даже если у тебя есть список дел, невозможно дойти до точки, где всё окончательно завершено и больше ничего не осталось. В принципе,. . .
Модель здравоСохранения: работники работают быстрее после её введения.
anaschu 23.03.2026
geJalZw1fLo Корпорация до введения программа здравоохранения имела много невыполненных работниками заданий, после введения программы количество заданий выросло. Но на выплатах по больничным это. . .
Контроль уникальности заводского номера - вариант №1
Maks 23.03.2026
Алгоритм контроля уникальности заводского (или серийного) номера на примере документа выдачи шин для спецтехники с табличной частью. Данные берутся из регистра сведений, по которому настроено. . .
Хочу заставить корпорации вкладываться в здоровье сотрудников: делаю мат модель здравосохранения
anaschu 22.03.2026
e7EYtONaj8Y Z4Tv2zpXVVo https:/ / github. com/ shumilovas/ med2. git
Программный отбор элементов справочника по группе
Maks 22.03.2026
Установка программного отбора элементов справочника "Номенклатура" из модуля формы документа. В качестве фильтра для отбора справочника служит группа номенклатуры. Отбор по наименованию группы. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru