【问题标题】:How to Open Default Windows Browser and Send HTTP Post Data to The Opened Url in browser in WinForm?如何在 WinForm 中打开默认 Windows 浏览器并将 HTTP Post 数据发送到浏览器中打开的 URL?
【发布时间】:2016-08-03 07:12:03
【问题描述】:

我想在 WinForm 应用程序的默认浏览器中打开我的应用程序 URL。 然后发送一些数据作为 HTTP POST 方法而不是查询字符串。 现在的问题是如果我想在我使用的默认浏览器中打开 URL 这段代码:

Process.Start("http://www.ketabchin.com/sort)

但在这个命令中,我无法将发布数据发送到该 url 然后我使用了这段代码:

Public Shared Function PostMessageToURL(url As String) As String
    Dim request As WebRequest = WebRequest.Create("https://www.ketabchin.com/windows-logged")
    request.Method = "POST"
    Dim postData As String = "u=" & FrmMain.Username & "&p=" & FrmMain.Password & "&url=" & url
    Dim byteArray As Byte() = Encoding.UTF8.GetBytes(postData)
    request.ContentType = "application/x-www-form-urlencoded"
    request.ContentLength = byteArray.Length
    Dim dataStream As Stream = request.GetRequestStream()
    dataStream.Write(byteArray, 0, byteArray.Length)
    dataStream.Close()
    Dim response As WebResponse = request.GetResponse()
    Console.WriteLine(CType(response, HttpWebResponse).StatusDescription)
    dataStream = response.GetResponseStream()
    Dim reader As New StreamReader(dataStream)
    Dim responseFromServer As String = reader.ReadToEnd()

    reader.Close()
    dataStream.Close()
    response.Close()
    Return responseFromServer
End Function

这个将 HTTP POST 请求数据发送到 url 但我无法打开它或在默认 Web 浏览器中响应。 我怎样才能做到这一点? 这个动作背后的逻辑是。我有一个 WinForm 应用程序,当我的用户在我的应用程序中单击“转到网站”按钮时。我想打开浏览器并将日志数据发送到登录页面,以便用户可以在日志模式下访问该站点。

【问题讨论】:

    标签: c# vb.net winforms http-post winforms-to-web


    【解决方案1】:

    我不知道您的问题是否仍需要解决方案,但我使用您的代码来替代类似问题。我有同样的请求,我需要用户单击 AppForm 按钮来登录网站,但我没有找到任何方法将帖子数据从 VB 应用程序发送到导航器(可能是一种解决方案可能存在于 IE/ Edge 但我的用户可以使用 IE/FF/Chrome)。以下是我为找到解决方案而采取的步骤:

    1. 用户必须点击连接的按钮正在使用您的代码
    2. postData 包含网站识别用户所需的所有数据(如用户名和密码)+ IP 地址
    3. 网站检查这些数据,如果一切正常,它会生成一个唯一的 32 位密钥并将其存储在数据库中
    4. 然后网站发送一个json响应{"status" => "ok", "token" => $key, "ip" => $ipFromPostRequest}
    5. VB 应用程序现在正在打开一个程序(您可以找到一些代码来打开默认浏览器的链接,如果未定义 IE 或 FF),其链接类似于 http://www.website.com/auto-login/32-BITS-GENERATED-KEY
    6. 如果密钥和 IP 对应,网站会检查数据库
    7. 网站创建会话并将用户重定向到主页并从数据库中删除密钥

    出于安全原因,我认为这不是最佳解决方案,但就我而言,这是一个具有唯一计算机名称和内部 IP 地址的公司网络,此过程正在运行。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2020-05-06
      • 2011-07-01
      • 2014-12-06
      • 2017-10-03
      • 2018-08-21
      • 2014-12-29
      相关资源
      最近更新 更多