Получить длину содержимого httpwebrequest vb2005

У меня есть программа, в которой пользователи вводят полный URL-адрес со строкой запроса в кодировке URL, и она отправляет его в Интернет.

Я использую httpwebrequest в vb2005.

Я получаю сообщение об ошибке с веб-сайтов о том, что I should send a content length

если URL-адрес http://www.someurl.com/query.php?q=somtext¶m1=paramtext¶m2=paramtext2

как мне получить длину контента из URL-адреса, так как это невозможно узнать автоматически?

РЕДАКТИРОВАТЬ

я решил использовать это, правильно ли это

Private Function GetHtmlFromUrl(ByVal url As String, _
                                   Optional ByVal PostData As String = vbNullString) As String

        If url.ToString() = vbNullString Then
            Throw New ArgumentNullException("url", "Parameter is null or empty")
        End If
        Dim html As String = vbNullString
        Dim myUrl As New System.Uri(url)
        Dim request As HttpWebRequest = WebRequest.Create(url)
        With request
            .ContentType = "Content-Type: application/x-www-form-urlencoded"
            .Method = "POST"
            .UserAgent = "Mozilla/4.0 (MSIE 6.0; Windows NT 5.1)"
            .Referer = "http://www.google.com"
            .ContentLength = myUrl.Query.Length
        End With



        Try
            Dim response As HttpWebResponse = request.GetResponse()
            Dim reader As StreamReader = New StreamReader(response.GetResponseStream())
            html = Trim$(reader.ReadToEnd)
            Return html
        Catch ex As WebException
            Return ex.Message
        End Try

    End Function

person Smith    schedule 25.03.2011    source источник


Ответы (1)


Проблема в том, что вы указываете метод «POST», но передаете аргументы в качестве URL-адреса «GET». Вам либо нужно использовать метод GET, либо вам нужно выполнить POST (записать параметры в поток запроса).

http://www.codeproject.com/KB/webservices/HttpWebRequest_Response.aspx

person Tergiver    schedule 25.03.2011
comment
Я не думаю, что этот код отличается от моего, мой дает error 500 internat server error то же самое происходит, когда я использую этот код - person Smith; 25.03.2011
comment
@Smith - ваш код не содержит записи в поток запросов. Ваш код выполняет запрос GET, но указывает, что это запрос POST. Посмотрите на статью, на которую я ссылаюсь, более внимательно, но сначала вам нужно проверить, какой метод (GET или POST) хочет видеть рассматриваемый веб-сайт. - person Tergiver; 25.03.2011