Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/vb.net/16.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 如何在WinForm中打开默认Windows浏览器并将HTTP Post数据发送到浏览器中打开的Url?_C#_Vb.net_Winforms_Http Post_Winforms To Web - Fatal编程技术网

C# 如何在WinForm中打开默认Windows浏览器并将HTTP Post数据发送到浏览器中打开的Url?

C# 如何在WinForm中打开默认Windows浏览器并将HTTP Post数据发送到浏览器中打开的Url?,c#,vb.net,winforms,http-post,winforms-to-web,C#,Vb.net,Winforms,Http Post,Winforms To Web,我想在WinForm应用程序的默认浏览器中打开我的应用程序的URL。 然后以HTTP POST方法而不是查询字符串的形式发送一些数据。 现在的问题是,如果我想在我使用的默认浏览器中打开URL 此代码: Process.Start("http://www.ketabchin.com/sort) 但在这个命令中,我无法将post数据发送到该url 然后我用了这个代码: Public Shared Function PostMessageToURL(url As String) As String

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

Process.Start("http://www.ketabchin.com/sort)
但在这个命令中,我无法将post数据发送到该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应用程序,当我的用户在我的应用程序中点击“转到网站”Button时。我想打开浏览器并将日志数据发送到登录页面,以便用户可以在日志模式下访问站点。

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

  • 用户必须单击以连接的按钮正在使用您的代码
  • postData
    包含网站识别用户所需的所有数据(如用户名和密码)+IP地址
  • 该网站会检查这些数据,如果一切正常,它会生成一个唯一的32位密钥并将其存储在数据库中
  • 然后网站发送一个json响应
    {“status”=>“ok”,“token”=>$key,“ip”=>$ipFromPostRequest}
  • VB应用程序现在正在打开一个程序(你可以找到一些代码,用默认浏览器打开一个链接,如果没有定义IE或FF),链接如下
  • 网站在数据库中检查密钥和IP是否对应
  • 网站创建一个会话并将用户重定向到主页并从数据库中删除密钥
  • 出于安全考虑,我认为这不是最好的解决方案,但就我而言,这是一个具有唯一计算机名和内部IP地址的compagny网络,并且这个过程正在运行