我想在WinForm应用程序的默认浏览器中使用我的应用程序打开URL。 然后发送一些数据作为HTTP POST方法而不是查询字符串。 现在的问题是,如果我想在我使用的默认浏览器中打开URL 这段代码:
Process.Start("http://www.ketabchin.com/sort)
但是在这个命令中,我无法将帖子数据发送到该网址 然后我用这个代码:
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应用程序,当我的用户点击我的应用程序中的“转到网站”按钮。我想打开浏览器并将登录数据发送到登录页面,这样用户就可以在登录模式下访问该站点。
答案 0 :(得分:1)
我不知道您的问题是否仍然需要解决方案,但我使用您的代码来替代类似的问题。我有相同的请求,我需要用户点击AppForm按钮登录网站,但我没有找到任何方法将发布数据从VB应用程序发送到导航器(可能是一个解决方案可能存在与IE / Edge但我的用户可以使用IE / FF / Chrome)。以下是我为找到解决方案所采取的步骤:
postData
包含网站识别用户所需的所有数据(如用户名和密码)+ IP地址{"status" => "ok", "token" => $key, "ip" => $ipFromPostRequest}
我认为这不是出于安全原因的最佳解决方案,但就我而言,这是一个具有独特计算机名称和内部IP地址的公用网络,此过程正常运行。