Показать сообщение отдельно

  #2  
Старый 23.07.2009, 14:33
FireFenix
Постоянный
Регистрация: 03.06.2009
Сообщений: 385
Провел на форуме:
3178262

Репутация: 389
По умолчанию

Писал для себя на VB.NET на VS2008TS, думаю не составит труда перевести на C#
Код:
    Public Function Request(Dim Login as String, Dim Pass as String, ByVal URL as String, Dim RegEx_Parse as String, Dim RegEx_Denial as String)
        Dim StreamReader As StreamReader = Nothing
        Dim StreamWriter As StreamWriter = Nothing
        Dim RegEx As New System.Text.RegularExpressions.Regex("")
        Dim Match As System.Text.RegularExpressions.Match
        Dim Req As HttpWebRequest = Nothing
        Dim Resp As HttpWebResponse = Nothing
        Dim Send As String = "login=" & Login & "&pass=" & Pass
        Dim Content As String = Nothing

        Dim Cookie As New CookieCollection
        Cookie.Add(New Cookie("name", "value", "path", "domain")) 'Если нужно используем кукисы + атачим их

        Dim Result As String = Nothing

        Try
            Req = WebRequest.Create(Site.URL)
            Req.Method = WebRequestMethods.Http.Post
            Req.ContentLength = Send.Length
            Req.ContentType = "application/x-www-form-urlencoded"
            Req.CookieContainer = New CookieContainer 'Создаём контейнер для кукисов
            Req.CookieContainer.Add(Cookie) 'Атачим кукисы

            StreamWriter = New StreamWriter(Req.GetRequestStream, System.Text.Encoding.Default)
            StreamWriter.Write(Send)
            StreamWriter.Close()

            Resp = Req.GetResponse
            Cookie = Resp.Cookies 'Получаем Кукисы

            StreamReader = New System.IO.StreamReader(Resp.GetResponseStream, System.Text.Encoding.Default)
            Content = StreamReader.ReadToEnd

            Match = RegEx.Match(Content, Site.RegEx_Denial, RegexOptions.Singleline Or RegexOptions.IgnoreCase)

            If Match.Success = False Then
                Match = RegEx.Match(Content, Site.RegEx_Parse, RegexOptions.Singleline Or RegexOptions.IgnoreCase)

                If Match.Success = True Then
                    Result = Match.Groups(1).Value
                End If
            End If

            Resp.Close()
            StreamReader.Close()
        Catch ex As Exception
            MsgBox("Ошибка " & ex.Message)
        End Try

        Return Result
    End Function
Отправка данных + парсинг ответа регексами

Последний раз редактировалось FireFenix; 23.07.2009 в 14:48..