Как открыть браузер 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). Итак, вот шаги, которые я сделал, чтобы найти решение:

  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-адресом, и эта процедура работает.

Другие вопросы по тегам