Как открыть браузер Windows по умолчанию и отправить данные HTTP-сообщения на открытый URL-адрес в браузере в WinForm?
Я хочу, чтобы мое приложение открывало URL в браузере по умолчанию в приложении WinForm. А затем отправить некоторые данные как метод 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, но я не могу открыть его или ответ в веб-браузере по умолчанию. Как я могу это сделать? Логика этого действия есть. У меня есть приложение WinForm, и когда мой пользователь нажимает кнопку "Перейти на сайт" в моем приложении. Я хочу открыть браузер и отправить данные регистрации на страницу входа, чтобы пользователь мог посетить сайт в режиме регистрации.
1 ответ
Я не знаю, нуждается ли ваша проблема в решении, но я использую ваш код, чтобы сделать альтернативу подобной проблеме. У меня такой же запрос, мне нужно, чтобы пользователь нажимал кнопку AppForm для входа на веб-сайт, но я не нашел способа отправить данные публикации из приложения VB в навигатор (может быть, одно решение могло бы существовать с IE/ Край, но мои пользователи могут использовать IE/FF/Chrome). Итак, вот шаги, которые я сделал, чтобы найти решение:
- Кнопка, на которой пользователь должен нажать для подключения, использует ваш код
postData
содержит все данные, необходимые веб-сайту для идентификации пользователя (например, имя пользователя и пароль) + IP-адрес- Сайт проверяет эти данные и, если все в порядке, генерирует уникальный 32-битный ключ и сохраняет его в базе данных.
- Затем сайт отправляет JSON ответ
{"status" => "ok", "token" => $key, "ip" => $ipFromPostRequest}
- Приложение VB теперь открывает программу (вы можете найти код для открытия ссылки в браузере по умолчанию и, если не определен IE или FF) со ссылкой, например http://www.website.com/auto-login/32-BITS-GENERATED-KEY
- Веб-сайт проверяет в базе данных, если ключ и IP соответствуют
- Веб-сайт создает сеанс и перенаправляет пользователя на дом и удаляет ключ из базы данных.
Я думаю, что это не лучшее решение из соображений безопасности, но с моей стороны это сеть с уникальными именами компьютеров и внутренним IP-адресом, и эта процедура работает.