【问题标题】:VB.net - how do i get the response data from a website?VB.net - 我如何从网站获取响应数据?
【发布时间】:2019-08-26 13:31:54
【问题描述】:

我正在尝试构建一个使用“httpRequest.Post()”发布数据的程序,并且还试图获取网站的响应数据,我该怎么做:

httpRequest.Referer = "https://website.com/"
Dim value As String = Regex.Match(httpRequest.[Get]("https://website.com/Login", Nothing).ToString(), "<input name=""Token"" type=""hidden"" value=""(.*?)"" />").Groups(1).ToString()
httpRequest.AddParam("Token", value)
httpRequest.AddParam("memberId", array(0))
httpRequest.AddParam("password", array(1))
httpRequest.AddParam("exp", "retail")
Dim text2 As String = httpResponse.Post("https://website/Login").ToString

If text2.Contains(" "Success" : true ") Or text2.Contains(" "memberPasswordValidationError" : false ") Then
    If text2.Contains(" "Success" : true" ) Then
        Me.successCode1 = "welcome"
    ElseIf text2.Contains(" "memberPasswordValidationError" : false ") Then
        Me.successCode2 = "Fail"
    End If
End If

响应数据如下所示

{ “memberPasswordValidationError”:假, “错误”:空, “成功”:假 }

【问题讨论】:

  • 您似乎已经收到回复:您发布的json
  • 我只发布了一个响应代码应该如何的示例。我不知道我是使用 httpResponse 还是 httpRequest
  • TBH 如果您要发回 json,为什么不将此 json 对象反序列化为 表示此数据的 .net 类对象?您不应该在这样的字段上使用Contains 来检查您的数据;效率低下、容易出错且不可靠。
  • trying to get the response data of the website, how do i go about it,但是你提到了the response data looks like this,我对你在问什么感到困惑。你得到json还是没有?我相信这可能是这里的调试问题...

标签: vb.net httprequest httpresponse


【解决方案1】:

我遵循的一般模式是

    'Imports System.Net
    Dim site As String
    site = String.Format("https://website/Login?{0}={1}&{2}={3}&{4}={5}&{6}={7}",
                         "Token", "tokenvalue",
                         "memberId", "val",
                         "password", "passwd value",
                         "exp", "retail")

    Dim request As WebRequest

    request = WebRequest.Create(site)
    request.Method = "POST" '<<<<<<<<<<<<<<<<

    Dim data() As Byte = {}

    request.ContentType = "application/x-www-form-urlencoded" '<<<<<<<<<<<<<<<<
    request.ContentLength = data.Length

    Dim stream As IO.Stream = request.GetRequestStream()
    stream.Write(data, 0, data.Length)
    stream.Close()

    Dim response As WebResponse
    response = request.GetResponse()
    Dim sr As New IO.StreamReader(response.GetResponseStream())
    Dim s As String
    s = sr.ReadToEnd

您需要更改其中的一些内容以匹配您的变量。希望对您有所帮助。

【讨论】:

    猜你喜欢
    • 2019-04-07
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-08-29
    • 2019-06-13
    • 1970-01-01
    相关资源
    最近更新 更多