0

ユーザーが URL エンコードされたクエリ文字列を含む完全な URL を入力し、それを Web に送信するプログラムがあります。

vb2005 で httpwebrequest を使用しています

私はウェブサイトからそれを言っているエラーを受け取ります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
4

1 に答える 1

1

問題は、メソッド「POST」を指定しているのに、引数を URL として渡すのが「GET」であることです。GET メソッドを使用するか、POST を実行する (パラメーターを要求ストリームに書き込む) 必要があります。

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

于 2011-03-25T13:35:07.670 に答える