none
Форум ucoz в программе WPF RRS feed

  • Вопрос

  • Здравствуйте. Подскажите, можно как нибудь программой получить сообщения с форума на ucoz или любом другом / написать ответ / зарегистрироваться?
    1 июня 2013 г. 15:50

Ответы

  • Ну с капчей не так сложно. Извлекаем из страницы тэг с ID "secImgForum" и из свойства scr этого тэга извлекаем ссылку на капчю и показываем пользователю в программе, пусть вводит.

    Насчет html. Ну пока можно обойтись и без него. По сути если туда ввести просто текст, то получим текст без настроек и выделений.


    Женат на WPF. Тайно встречаюсь с WinRT. Не сложилось с C#!

    Отвечающий

Все ответы

  • Не большой по тексту вопрос охватывает с 10к тем.

    1. Авторизация. Как то у меня даже был готовый код авторизации на uCoz, но потом он перестал работать, а обновлять мне и не нужно было.

    2. Когда авторизация пройдена получаем возможность видеть все темы открытые пользователю и отвечать в них.

    2.1. Как видеть? Первое что приходит в голову - получаем html главной страницы, а так сайты uCoz типизированы, то выявляем единую схему поиска разделов и ссылок на них. Для каждого раздела список тем и ссылок на них, для каждой темы количество страниц и ответы на странице.

    2.2. Как писать ответы? Отправлять post-запрос, который предварительно надо сграбить, что бы знать его схему. Запрос отправляется по нужному url, который выявили в пункте 2.1

    2 пункта и 2 подпункта каждый без должных знаний вызовет много вопросов и займет не мало времени.

    Направление я вам задал, решить задачу реально. Начинайте решать и по возникающим проблемам задавайте вопросы.


    Женат на WPF. Тайно встречаюсь с WinRT. Не сложилось с C#!

    1 июня 2013 г. 16:37
    Отвечающий
  • Мдаа.. как все сложно :) Но это самый простой вариант, без него будет сложнее. Будем изучать. Для начала можно попросить помочь с авторизацией в этой теме? )) Или новый топик создать? Буду премного благодарен :)
    1 июня 2013 г. 19:02
  • Нужно запросом post или get отправить логин и пароль... как реализовать этот запрос?.. Вопросов, конечно, много будет...
    1 июня 2013 г. 19:11
  • У них запрос post.

    Вот страница http://login.uid.me/?site=4fs-forum

    Этот сайт будет для тестов ))

    <!DOCTYPE HTML>
    <html>
    <head>
    <title>uID - глобальная система авторизации uCoz (ex uNet)</title>
    <meta http-equiv="content-type" content="text/html; charset=UTF-8">
    <script type="text/javascript" src="http://s000.uid.me/jsmin/u.js?v=6"></script><link type="text/css" rel="Stylesheet" href="http://s000.uid.me/css/unet.css"><link type="text/css" rel="stylesheet" href="http://s000.uid.me/css/uidlogin.css" />
    </head>
    <body>
    <div><div style="float:right"><input type="button" id="lngs" hidefocus="hidefocus" style="width:100px"/><script type="text/javascript">new _uComboBox('combo','lngs',{onchange:function(i,v){window.location.href=window.location.href.replace(/&l=[a-z]{2}/ig,'')+'&l='+v;},readonly:1},1,[['bg','/img/_bg.gif',0,'Български'],['de','/img/_de.gif',0,'Deutsch'],['en','/img/_en.gif',0,'English'],['es','/img/_es.gif',0,'Español'],['hu','/img/_hu.gif',0,'Magyar'],['pl','/img/_pl.gif',0,'Polski'],['pt','/img/_pt.gif',0,'Português'],['ro','/img/_ro.gif',0,'Română'],['ru','/img/_ru.gif',1,'Русский']]);</script></div></div>
    
    <script type="text/javascript">
    	sendFrm11=function(){
    		var o=document.getElementById('blk11');
    		var pos=_uGetOffset(o);
    		document.body.insertBefore(document.getElementById('blkD11'),document.body.firstChild);
    		with(document.getElementById('blkD11')){style.top=(pos['top'])+'px';style.left=(pos['left'])+'px';style.width=o.offsetWidth+'px';style.height=o.offsetHeight+'px';style.display='';innerHTML='<div align="right" style="padding:5px 10px 0 0;"><div class="myWinLoad"></div></div>';}
    		_uPostForm('frm11',{type:'POST',url:'/dolog/'});
    	}
    </script>
    <div id="blkD11" style=";z-index:11;background:url('http://s000.uid.me/img/grid.gif');display:none;"></div>
    <div id="wnd-wrap">
    	<div class="u-window window-auth">
    		<div id="centered" class="wnd-content">
    			<h3 class="wnd-title"><span>Вход через uID</span></h3>
    			<div id="blk11"><form id="frm11" onsubmit="sendFrm11();return false;">
    				<input type="hidden" name="ajax" value="1">
    				<input type="hidden" name="goto" value="url">
    				<input type="hidden" name="url" value="http://login.uid.me/?site=4fs-forum&amp;ref=">
    				<div class="auth-info">
    					Авторизация на сайте <b>fs-forum.3dn.ru</b> через учетную запись <a target="_blank" href="http://www.uid.me">uID</a>
    				</div>
    				<div class="input-div">
    					<span class="input-title">E-mail</span>
    					<input type="text" name="email" class="input-text" />
    				</div>
    				<div class="input-div">
    					<span class="input-title">Пароль</span>
    					<input type="password" name="pass" class="input-text" />
    				</div>
    				<div class="submit-div">
    					<div class="secmode-div"><select name="secmode" size="1" onchange="uSetCookie({name:'uPriv',value:this.value,days:300,path:'/',domain:'.uid.me'});"><option value="0" >Чужой компьютер</option><option value="1"  selected="selected">Личный компьютер</option></select></div>
    					<input type="submit" class="input-btn" value="Войти" />
    				</div>
    			</form></div>
    		</div>
    	</div>
    	<div id="spacer"></div>
    </div>
    <div class="login-links">
    	<div class="wnd-separator"></div>
    	<a target="_blank" href="http://www.uid.me/remind/" class="link-remind">Напомнить пароль</a>
    	<a target="_blank" href="http://www.uid.me/register/" class="link-register">Регистрация</a>
    </div>
    <script type="text/javascript">
    	function centerHorz(id) {
    		var el = document.getElementById(id);
    		el.style.position = 'absolute';
    		el.style.top = '50%';
    		el.style.left = '50%';
    		el.style.marginLeft = -el.clientWidth/2 + 'px';
    	}
    	function centerVert(id) {
    		var el = document.getElementById(id);
    		el.style.marginTop = -el.clientHeight/2 - 20 + 'px';
    	}
    	centerHorz('centered');
    	centerVert('centered');
    </script>
    <!-- <div class="poweredBy">uID.me &copy 2013</div><br/> -->
    </body>
    </html>
    
    <!-- 0.00161 -->

    1 июня 2013 г. 19:21
  •  Private Sub MenuItem1_Click(ByVal sender As System.Object, ByVal e As System.Windows.RoutedEventArgs) Handles MenuItem1.Click
            'Параметры POST запроса.
            MsgBox(PostData("email=test&pass=test"))
        End Sub
        Public Function PostData(ByVal data As String) As String
            Dim request As HttpWebRequest = CType(HttpWebRequest.Create("http://login.uid.me/dolog/?site=4fs-forum"), HttpWebRequest) ' Сервер для подключения
            request.Method = "POST"
            request.ContentType = "application/x-www-form-urlencoded"
            request.KeepAlive = False
            request.ContentLength = data.Length
    
            Dim writer As New StreamWriter(request.GetRequestStream(), Text.Encoding.Default)
            writer.Write(data)
            writer.Close()
    
            Dim stream As Stream = request.GetResponse().GetResponseStream()
            Dim reader As New StreamReader(stream, Text.Encoding.Default)
            Dim response As String = reader.ReadToEnd
    
            Return response
        End Function
    Вот! После такого отображает страницу пользователя... точнее ее исходный код. Что дальше делать? ) 
    • Изменено Siompc 1 июня 2013 г. 20:10
    1 июня 2013 г. 20:03
  • Смотрите - как вы прошли за логин дальнейшие запросы для получения страниц можно делать GET, но при это передавать cookie сессии:

    Сначала сохраняем его в глобальную переменную в вашем коде:

    Dim sCookies As String = ""
    ...
    If Not String.IsNullOrEmpty(myHttpWebResponse.Headers("Set-Cookie")) Then
       sCookies = request.Headers("Set-Cookie")
    End If

    А в последующих GET запросах перед GetResponseStream

    If Not String.IsNullOrEmpty(sCookies) Then
         request.Headers.Add(Net.HttpRequestHeader.Cookie, sCookies)
    End If

    Теперь вам будет возвращаться html страницы так как вы бы увидели ее после авторизации.

    Шаг 2.

    Получаем полный html заглавной страницы форумов и парсим. То есть нужно выявить ее структуру и понять внутри каких тэгов и клаcсов зашит заголовок и какая ссылка к нему относится.

    В сайте что вы привели самая первая тема выглядит так:

    <td class="forumNameTd"><a class="forum" href="http://fs-forum.3dn.ru/forum/5">Администрация ответит...</a>  <div class="forumDescr">Любые вопросы по сайту или ботам.</div></td>

    Если вы обратите внимание все заголовки находятся внутри тэга с классом "forumNameTd"

    Я думаю нужно с помощью регулярных выражений выбрать все строчки отвечающие требованию и выдирать из них данные.


    Женат на WPF. Тайно встречаюсь с WinRT. Не сложилось с C#!

    Отвечающий
  • Так... Получилось нечто такое...
      Dim myLogin As String = "test"
        Dim myPass As String = "test"
        Dim myUrl As String = "http://login.uid.me/"
        Dim myUrlSite As String = "http://fs-forum.3dn.ru/"
        Dim sCookies As String = ""
    
        Private Sub MenuItem1_Click(ByVal sender As System.Object, ByVal e As System.Windows.RoutedEventArgs) Handles MenuItem1.Click
            PostData()
            MsgBox(GetData)
        End Sub
        Public Function PostData() As String
            Dim myHttpWebRequest As HttpWebRequest
            Dim myHttpWebResponse As HttpWebResponse
    
            myHttpWebRequest = CType(HttpWebRequest.Create(myUrl & "dolog/?site=4fs-forum"), HttpWebRequest)
            myHttpWebRequest.Method = "POST"
            myHttpWebRequest.Referer = myUrl & "ref=http://fs-forum.3dn.ru/"
            myHttpWebRequest.UserAgent = "Mozilla/5.0 (Windows NT 6.1; rv:15.0) Gecko/20100101 Firefox/15.0.1"
            myHttpWebRequest.Accept = "text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8"
            myHttpWebRequest.Headers.Add("Accept-Language", "ru-ru,ru;q=0.8,en-us;q=0.5,en;q=0.3")
            myHttpWebRequest.ContentType = "application/x-www-form-urlencoded"
            If Not String.IsNullOrEmpty(sCookies) Then
                myHttpWebRequest.Headers.Add(HttpRequestHeader.Cookie, sCookies)
            End If
            myHttpWebRequest.AllowAutoRedirect = False
            Dim sQueryString As String = "email=" & myLogin & "&pass=" & myPass
            Dim ByteArr As Byte() = Encoding.GetEncoding(1251).GetBytes(sQueryString)
            myHttpWebRequest.ContentLength = ByteArr.Length()
            myHttpWebRequest.GetRequestStream().Write(ByteArr, 0, ByteArr.Length)
            myHttpWebResponse = CType(myHttpWebRequest.GetResponse(), HttpWebResponse)
            Dim myStreamReader As New StreamReader(myHttpWebResponse.GetResponseStream, Encoding.UTF8)
            sCookies = ""
            If Not String.IsNullOrEmpty(myHttpWebResponse.Headers("Set-Cookie")) Then
                sCookies = myHttpWebResponse.Headers("Set-Cookie")
            End If
    
            Return sCookies
    
            'Авторизоавлись и получили куки...
            'Теперь метод get...
        End Function
        Public Function GetData() As String
            Dim myHttpWebRequest As HttpWebRequest
            Dim myHttpWebResponse As HttpWebResponse
    
            myHttpWebRequest = CType(HttpWebRequest.Create(myUrlSite), HttpWebRequest)
            myHttpWebRequest.Method = "GET"
            myHttpWebRequest.Referer = ""
            myHttpWebRequest.UserAgent = "Mozilla/5.0 (Windows NT 6.1; rv:15.0) Gecko/20100101 Firefox/15.0.1"
            myHttpWebRequest.Accept = "text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8"
            myHttpWebRequest.Headers.Add("Accept-Language", "ru-ru,ru;q=0.8,en-us;q=0.5,en;q=0.3")
            If Not String.IsNullOrEmpty(sCookies) Then
                myHttpWebRequest.Headers.Add(HttpRequestHeader.Cookie, sCookies)
            End If
            myHttpWebRequest.AllowAutoRedirect = False
            myHttpWebResponse = CType(myHttpWebRequest.GetResponse(), HttpWebResponse)
            Dim myStreamReader1 As New StreamReader(myHttpWebResponse.GetResponseStream, Encoding.UTF8)
            myStreamReader1 = New StreamReader(myHttpWebResponse.GetResponseStream, Encoding.GetEncoding(65001))
    
            Dim txt As String = myHttpWebResponse.StatusCode & vbCrLf
            txt += myHttpWebResponse.Headers.ToString & vbCrLf & vbCrLf & vbCrLf & vbCrLf
            txt += myStreamReader1.ReadToEnd
    
            Return txt
        End Function

    Он авторизуется, но при использовании Get запроса страницы сайта с куками он выдает что все равно зашли как гость...

    Еще такой вариант, может проще будет сделать по другому? Нужно просто получить ник, под которым зарегистрирован. А в программе будет ссылка на сам форум, точнее на страницу с комментариями материала. На это странице оставлять сообщения может даже гость. В программе можно их будет прочитать (только для этого материала) и оставить запись. Если надо, пусть заходят на сайт... :) Авторизация в этом случае все равно нужна... Ник высветится в Html, можно будет получить. Но пока что там гость ) Где тут ошибка?

    2 июня 2013 г. 19:16
  • Продолжаю ковыряться.. Вот код

        Dim myLogin As String = "test"
        Dim myPass As String = "test"
        Dim myUrl As String = "http://login.uid.me/"
        Dim myUrlSite As String = "http://fs-forum.3dn.ru/"
        Dim sCookies As String = ""
    
        Private Sub MenuItem1_Click(ByVal sender As System.Object, ByVal e As System.Windows.RoutedEventArgs) Handles MenuItem1.Click
            FileIO.FileSystem.WriteAllText("temps1.txt", PostData00, False)
            FileIO.FileSystem.WriteAllText("temps2.txt", PostData, False)
            FileIO.FileSystem.WriteAllText("temps3.txt", GetData, False)
        End Sub
        Public Function PostData00() As String
            Dim myHttpWebRequest As HttpWebRequest
            Dim myHttpWebResponse As HttpWebResponse
    
            myHttpWebRequest = CType(HttpWebRequest.Create("http://fs-forum.3dn.ru/"), HttpWebRequest)
            myHttpWebRequest.UserAgent = "Mozilla/5.0 (Windows NT 6.1; rv:15.0) Gecko/20100101 Firefox/15.0.1"
            myHttpWebRequest.Accept = "text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8"
            myHttpWebRequest.Headers.Add("Accept-Language", "ru-ru,ru;q=0.8,en-us;q=0.5,en;q=0.3")
            myHttpWebRequest.ContentType = "application/x-www-form-urlencoded"
            myHttpWebResponse = CType(myHttpWebRequest.GetResponse(), HttpWebResponse)
            Dim myStreamReader As New StreamReader(myHttpWebResponse.GetResponseStream, Encoding.UTF8)
            sCookies = ""
            If Not String.IsNullOrEmpty(myHttpWebResponse.Headers("Set-Cookie")) Then
                sCookies = myHttpWebResponse.Headers("Set-Cookie")
            End If
    
            Dim txt As String = myHttpWebResponse.StatusCode & vbCrLf
            txt += myHttpWebResponse.Headers.ToString & vbCrLf & vbCrLf & vbCrLf & vbCrLf
            txt += myStreamReader.ReadToEnd
    
            Return txt
    
            'получили куки...
      End Function
        Public Function PostData() As String
            Dim myHttpWebRequest As HttpWebRequest
            Dim myHttpWebResponse As HttpWebResponse
    
            myHttpWebRequest = CType(HttpWebRequest.Create(myUrl & "dolog/?site=4fs-forum"), HttpWebRequest)
            myHttpWebRequest.Method = "POST"
            myHttpWebRequest.Referer = "http://fs-forum.3dn.ru/"
            myHttpWebRequest.UserAgent = "Mozilla/5.0 (Windows NT 6.1; rv:15.0) Gecko/20100101 Firefox/15.0.1"
            myHttpWebRequest.Accept = "text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8"
            myHttpWebRequest.Headers.Add("Accept-Language", "ru-ru,ru;q=0.8,en-us;q=0.5,en;q=0.3")
            myHttpWebRequest.ContentType = "application/x-www-form-urlencoded"
            If Not String.IsNullOrEmpty(sCookies) Then
                myHttpWebRequest.Headers.Add(HttpRequestHeader.Cookie, sCookies)
            End If
            myHttpWebRequest.AllowAutoRedirect = False
            Dim sQueryString As String = "email=" & myLogin & "&pass=" & myPass
            Dim ByteArr As Byte() = Encoding.GetEncoding(1251).GetBytes(sQueryString)
            myHttpWebRequest.ContentLength = ByteArr.Length()
            myHttpWebRequest.GetRequestStream().Write(ByteArr, 0, ByteArr.Length)
            myHttpWebResponse = CType(myHttpWebRequest.GetResponse(), HttpWebResponse)
            Dim myStreamReader As New StreamReader(myHttpWebResponse.GetResponseStream, Encoding.UTF8)
            sCookies = ""
            If Not String.IsNullOrEmpty(myHttpWebResponse.Headers("Set-Cookie")) Then
                sCookies = myHttpWebResponse.Headers("Set-Cookie")
            End If
    
            Dim txt As String = myHttpWebResponse.StatusCode & vbCrLf
            txt += myHttpWebResponse.Headers.ToString & vbCrLf & vbCrLf & vbCrLf & vbCrLf
            txt += myStreamReader.ReadToEnd
    
            Return txt
    
            'Авторизоавлись и получили куки...
            'Теперь метод get...
        End Function
        Public Function GetData() As String
            Dim myHttpWebRequest As HttpWebRequest
            Dim myHttpWebResponse As HttpWebResponse
    
            myHttpWebRequest = CType(HttpWebRequest.Create("http://fs-forum.3dn.ru/"), HttpWebRequest)
            myHttpWebRequest.UserAgent = "Mozilla/5.0 (Windows NT 6.1; rv:15.0) Gecko/20100101 Firefox/15.0.1"
            myHttpWebRequest.Accept = "text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8"
            myHttpWebRequest.Headers.Add("Accept-Language", "ru-ru,ru;q=0.8,en-us;q=0.5,en;q=0.3")
            myHttpWebRequest.ContentType = "application/x-www-form-urlencoded"
            If Not String.IsNullOrEmpty(sCookies) Then
                myHttpWebRequest.Headers.Add(HttpRequestHeader.Cookie, sCookies)
            End If
            myHttpWebResponse = CType(myHttpWebRequest.GetResponse(), HttpWebResponse)
            Dim myStreamReader As New StreamReader(myHttpWebResponse.GetResponseStream, Encoding.UTF8)
            sCookies = ""
            If Not String.IsNullOrEmpty(myHttpWebResponse.Headers("Set-Cookie")) Then
                sCookies = myHttpWebResponse.Headers("Set-Cookie")
            End If
    
            Dim txt As String = myHttpWebResponse.StatusCode & vbCrLf
            txt += myHttpWebResponse.Headers.ToString & vbCrLf & vbCrLf & vbCrLf & vbCrLf
            txt += myStreamReader.ReadToEnd
    
            Return txt
        End Function

    Первый PostData00 получает куки с сайта. Потом с этими куками идет авторизовываться на сайт uid.me. Там он авторизуется и... все. Дальше все равно на сайте мы гость )).. 


    • Изменено Siompc 3 июня 2013 г. 8:54
  • Как я и писал выше мой код перестал работать со вводом UID, но я не стал его переделывать, так как не было времени и надобности. Сейчас тоже не особо есть время вникать, но постараюсь чуть позже.

    Женат на WPF. Тайно встречаюсь с WinRT. Не сложилось с C#!

    4 июня 2013 г. 11:31
    Отвечающий
  • Нашел способ как авторизоваться по старинке :) Для этого на сайте должна быть старая форма входа. Вот код старой авторизации.

     Dim myLogin As String = "---"
        Dim myPass As String = "---"
        Dim myUrl As String = "http://filestored.narod.ru/"
        Dim myUrlSite As String = "http://filestored.narod.ru/"
        Dim sCookies As String = ""
    
        Private Sub MenuItem1_Click(ByVal sender As System.Object, ByVal e As System.Windows.RoutedEventArgs) Handles MenuItem1.Click
            FileIO.FileSystem.WriteAllText("temps1.txt", PostData00, False)
            FileIO.FileSystem.WriteAllText("temps2.txt", PostData, False)
        End Sub
        Public Function PostData00() As String
            Dim myHttpWebRequest As HttpWebRequest
            Dim myHttpWebResponse As HttpWebResponse
    
            myHttpWebRequest = CType(HttpWebRequest.Create(myUrl & "index/sub/"), HttpWebRequest)
            myHttpWebRequest.Method = "POST"
            myHttpWebRequest.Referer = myUrl
            myHttpWebRequest.UserAgent = "Mozilla/5.0 (Windows NT 6.1; rv:15.0) Gecko/20100101 Firefox/15.0.1"
            myHttpWebRequest.Accept = "text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8"
            myHttpWebRequest.Headers.Add("Accept-Language", "ru-ru,ru;q=0.8,en-us;q=0.5,en;q=0.3")
            myHttpWebRequest.ContentType = "application/x-www-form-urlencoded"
            myHttpWebRequest.AllowAutoRedirect = False
            If Not String.IsNullOrEmpty(sCookies) Then
                myHttpWebRequest.Headers.Add(HttpRequestHeader.Cookie, sCookies)
            End If
            Dim sQueryString As String = "user=" & myLogin & "&password=" & myPass & "&rem=1&a=2&ajax=1&rnd=" & CInt(Rnd() * 1000) & "&_tp_=xml"
            Dim ByteArr As Byte() = Encoding.GetEncoding(1251).GetBytes(sQueryString)
            myHttpWebRequest.ContentLength = ByteArr.Length()
            myHttpWebRequest.GetRequestStream().Write(ByteArr, 0, ByteArr.Length)
            myHttpWebResponse = CType(myHttpWebRequest.GetResponse(), HttpWebResponse)
            Dim myStreamReader = New StreamReader(myHttpWebResponse.GetResponseStream, Encoding.UTF8)
            sCookies = ""
            If Not String.IsNullOrEmpty(myHttpWebResponse.Headers("Set-Cookie")) Then
                sCookies = myHttpWebResponse.Headers("Set-Cookie")
            End If
    
            Dim txt = myHttpWebResponse.StatusCode & vbCrLf
            txt += myHttpWebResponse.Headers.ToString & vbCrLf & vbCrLf & vbCrLf & vbCrLf
            txt += myStreamReader.ReadToEnd
    
            Return txt
    
    
            'Авторизоавлись и получили куки...
            'Теперь метод get...
        End Function
        Public Function PostData() As String
             Dim myHttpWebRequest As HttpWebRequest
            Dim myHttpWebResponse As HttpWebResponse
    
            myHttpWebRequest = CType(HttpWebRequest.Create(myUrl), HttpWebRequest)
            myHttpWebRequest.UserAgent = "Mozilla/5.0 (Windows NT 6.1; rv:15.0) Gecko/20100101 Firefox/15.0.1"
            myHttpWebRequest.Accept = "text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8"
            myHttpWebRequest.Headers.Add("Accept-Language", "ru-ru,ru;q=0.8,en-us;q=0.5,en;q=0.3")
            myHttpWebRequest.ContentType = "application/x-www-form-urlencoded"
            If Not String.IsNullOrEmpty(sCookies) Then
                myHttpWebRequest.Headers.Add(HttpRequestHeader.Cookie, sCookies)
            End If
            myHttpWebResponse = CType(myHttpWebRequest.GetResponse(), HttpWebResponse)
            Dim myStreamReader As New StreamReader(myHttpWebResponse.GetResponseStream, Encoding.UTF8)
            sCookies = ""
            If Not String.IsNullOrEmpty(myHttpWebResponse.Headers("Set-Cookie")) Then
                sCookies = myHttpWebResponse.Headers("Set-Cookie")
            End If
    
            Dim txt As String = myHttpWebResponse.StatusCode & vbCrLf
            txt += myHttpWebResponse.Headers.ToString & vbCrLf & vbCrLf & vbCrLf & vbCrLf
            txt += myStreamReader.ReadToEnd
    
            Return txt
        End Function

    Первый запрос выдает следующее

    200
    Transfer-Encoding: chunked
    Connection: keep-alive
    Keep-Alive: timeout=15
    Content-Type: text/xml; charset=UTF-8
    Date: Wed, 05 Jun 2013 11:32:36 GMT
    Set-Cookie: ofilestoreduCoz=; path=/; expires=Mon, 06-Jun-2011 11:32:36 GMT; domain=.filestored.narod.ru;,ofilestoreduCoz=1nggl4q6nVwmsO1; path=/; expires=Sun, 04-Aug-2013 11:32:36 GMT; domain=.filestored.narod.ru;,ofilestoredEScom=; path=/; expires=Mon, 06-Jun-2011 11:32:36 GMT; domain=.filestored.narod.ru;,ofilestoreduz47=; path=/; expires=Mon, 06-Jun-2011 11:32:36 GMT;,ofilestoreduzll=1370431956; path=/; expires=Thu, 05-Jun-2014 11:32:36 GMT; domain=.filestored.narod.ru;
    Server: uServ/3.2.2
    Cache-Control: no-cache,no-store
    Pragma: no-cache
    Vary: host
    
    
    
    
    
    <?xml version="1.0" encoding="UTF-8"?><ajax><cmd p="innerHTML" t="blk549706"><![CDATA[<div align="left" style="padding:10px;"><div class="myWinLoadSD"></div></div>]]></cmd><cmd p="js"><![CDATA[var ad=window.location.href.replace(/#(.*)?/,''); setTimeout("window.location.href='"+ad+"?lMA5hW'",'1000')]]></cmd></ajax>

    Но в итоге мы остаемся гостем. Во втором запросе. Может подправить код? Или с ним все нормально?

    5 июня 2013 г. 11:34
  • Ладно, с этим плоховато выходит... Тогда такой вопрос. Если без авторизации. Путь будет хотя бы так ))) Приложению дана ссылка на тему форума. Пользователь может оставить там сообщение, но как гость. Как получить сообщения со страницы и отправить туда его? Там стоит каптча. И сообщения представлены в виде html... что ни есть хорошо )) lxgdark, рассчитываю на твою помощь :)
    6 июня 2013 г. 19:58
  • Ну с капчей не так сложно. Извлекаем из страницы тэг с ID "secImgForum" и из свойства scr этого тэга извлекаем ссылку на капчю и показываем пользователю в программе, пусть вводит.

    Насчет html. Ну пока можно обойтись и без него. По сути если туда ввести просто текст, то получим текст без настроек и выделений.


    Женат на WPF. Тайно встречаюсь с WinRT. Не сложилось с C#!

    Отвечающий
  • Я отправил тестовое сообщение на сайт. Вот что получил:

    Что бы имитировать это нужно отправить POST с телом следующего принципа - значение из таблицы слева=значение из таблицы справа и разделяем их знаком &

    Пример: "jkd498=1&jkd428=1&user=lxgdark..." и так далее.

    Но тут как раз и непонятки с этими jkd и прочими seckey, ssid, fid, tid. Что это? Откуда их брать? Понятно с user, понятно с message, понятно smile_on и code (это капча как раз). Все остальное не понятно...


    Женат на WPF. Тайно встречаюсь с WinRT. Не сложилось с C#!

    Отвечающий
  • Хмм.. большое спасибо! Еще момент.

    Извлекать теги и значения со страниц каким способом лучше? Мне пока приходит в голову поиск индекса начала тега, потом от туда поиск значения... Но наверняка есть более упрощенный способ..

    7 июня 2013 г. 14:25
  • Я чуть выше предлагал для этих целей использовать регулярные выражения. Если еще не знакомы с ними, то самое время познакомится.

    Женат на WPF. Тайно встречаюсь с WinRT. Не сложилось с C#!

    7 июня 2013 г. 16:28
    Отвечающий
  • Аааа кажется разобрался! Последний вопрос!!! Если неверно введены символы каптчи, можно как-то отобразить ошибку? Или это будет слишком сложно? :) Если сложно, тогда не нужно :)))

    • Изменено Siompc 10 июня 2013 г. 14:28
    9 июня 2013 г. 12:35