Использование Visual Basic 2017 для перехода к WiFi-коммутатору esp8266 (Sonoff) - PullRequest
0 голосов
/ 05 июня 2018

Я использую приведенный ниже код для перехода к определенному веб-адресу следующим образом:

WebBrowser1.Navigate("http://192.168.0.157/cm?cmnd=POWER%20Toggle"

Дело в том, что ссылка возвращает файл .json и WebBrowser controls отображает диалоговое окно сохранения файла по умолчанию, спрашивающее, хочу ли я сохранить файл или запустить его.

Я хочу проигнорировать это диалоговое окно и напрямую прочитать из файла .json (я имею в видупосле загрузки).

Я просто хочу избавиться от Диалога сохранения веб-браузера. Я новичок, поэтому я не знаю, что искать или как правильно спрашивать.

1 Ответ

0 голосов
/ 05 июня 2018

Хотя ваш пост даже близко не соответствует стандарту и вряд ли объясняет проблему, я понимаю, что у вас есть несколько проблем, и я отвечу на них отдельно.

Отключение загрузкидиалог веб-браузера и автоматическая загрузка файлов

Во-первых, вы упомянули, it возвращает файл .json .Таким образом, вы можете легко добавить SaveFileDialog к вашей форме или задать собственный путь (возможно, в переменной) и проверить, пытается ли веб-браузер загрузить какие-либо .json файлы.Затем вы выполните Cancel вызов (обычно я имею в виду, что отмените всплывающее окно с надписью Сохранить , Выполните ...) и воспользуйтесь SaveFileDialog или локальной переменной длясохраните файл прямо на диск.Вот пример, который использует локальную строковую переменную в качестве пути и сохраняет файл .json непосредственно на диск:

 Imports System.ComponentModel
 ...

 Dim filepath As String '''class lever variable

 Private Sub myBroswer_Navigating(sender as Object, e As WebBrowserNavigatingEventArgs) Handles myBroswer.Navigating


  If e.Url.Segments(e.Url.Segments.Length - 1).EndsWith(".json") Then
    e.Cancel = True
    filepath = "C:\test\" + e.Url.Segments(e.Url.Segments.Length - 1)
    Dim client As WebClient = New WebClient()
    AddHandler client.DownloadFileCompleted , AddressOf New AsyncCompletedEventHandler(DisplayJson);   
    client.DownloadFileAsync(e.Url, filepath)     
End If
End Sub

Отображение результата AKA .json

Очень легко десериализовать / анализировать файлы .json. Но сначала скачайте это , извлеките ZIP и Add Reference в Newtonsoft.Json.dll.Теперь рассмотрим фрагмент кода ниже:

 Private Sub DisplayJson()
   Dim parseJson = Newtonsoft.Json.Linq.JObject.Parse(File.ReadAllLines(filepath))

   MsgBox(parseJson("element name here").ToString)
 End sub

Надеюсь, это поможет

...