HttpWebRequest: метод публикации с использованием "useUnsafeHeaderParsing = true"

Я пытаюсь подключиться к стороннему веб-сайту, а затем получить исходный код.
Это работало хорошо для меня, и через некоторое время я попытался войти снова, а затем я получил сообщение об ошибке:
" {" Сервер совершил нарушение протокола. Section = ResponseStatusLine "}.
После быстрого поиска в Google я обнаружил, что должен добавить в "app.config" следующую запись: <httpWebRequest useUnsafeHeaderParsing = true/>
После этого все заработало нормально. Но я получаю исходный код как гусет, а не как "подключенный пользователь".

Я пробовал другой сайт, который не требует "UseUnsafeHeaderParsing = true"
и это сработало хорошо. Это похоже на "UseUnsafeHeaderParsing = true" разрушительные куки?

* Извините за мой английский, это не мой родной язык.

это мой код:

Private siteCookies As New Net.CookieContainer()

    Function siteRequest(url As String, ByVal Method As String, Optional ByVal data As String = Nothing) As String
        Static soucrecode As String = Nothing
        Const UserAgent As String = "Mozilla/5.0 (Windows NT 6.1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/41.0.2228.0 Safari/537.36"
        Try

            Dim Request As Net.HttpWebRequest = Net.WebRequest.Create(url)
            Request.Accept = "*/*"
            Request.Timeout = 10000
            Request.Method = Method
            Request.UserAgent = UserAgent
            Request.AllowAutoRedirect = True
            Request.CookieContainer = siteCookies
            If Request.Method = "POST" AndAlso data IsNot Nothing Then
                Dim postBytes() As Byte = New UTF8Encoding().GetBytes(data)
                Request.ContentType = "application/x-www-form-urlencoded"
                Request.ContentLength = postBytes.Length
                Request.GetRequestStream().Write(postBytes, 0, postBytes.Length)
            End If

            Dim Response As Net.HttpWebResponse = Request.GetResponse()
            soucrecode = New IO.StreamReader(Response.GetResponseStream).ReadToEnd()
            Response.Close()
        Catch e As Exception
         Console.WriteLine(e.Message)

        End Try
        Return soucrecode
    End Function

с помощью:

txtLoginSoucre.Text = siteRequest("http://www.SomeSite.com/login.php?do=login", "Post", "username=myUser&password=MyPass") ' Login to site
txtSoucre.Text siteRequest("http:  //www.SomeSite.com", "Get") 'Grab soucrecode

1 ответ

Просто добавь

Request.KeepAlive = False

Другие вопросы по тегам