【问题标题】:C# - replacement of WebClient.downloadString in webbrowser controlC# - 在 webbrowser 控件中替换 WebClient.downloadString
【发布时间】:2018-04-05 01:42:31
【问题描述】:

我是 webbrowser 控件的新手,我需要在我的窗口应用程序的 web 浏览器控件中通过 Rest API 从服务器下载字符串。

是否有任何替代网页浏览器控件中的 webClientObject.DownloadString() 方法。

【问题讨论】:

  • 您的意思是您只想获取您当前在 WebBrowser 中查看的页面的 HTML 源代码?
  • 不,我想从我的网络浏览器调用一个 Rest API 并捕获响应
  • 这没什么意义,你为什么要使用WebBrowser 呢?这根本不是它的本意。为什么不能使用WebClient
  • @RamaKrishna - 为什么坚持使用 WebBrowserControl?为什么不能使用 HttpWebRequest?使用 WebBrowserControl,您只能调用 GET APIs。为此,只需导航到 GET Api --- 例如:server:port/rest/ApiName。这将对 URL 进行 GET 调用。
  • 我正在使用 WebBrowser 通过 SSO 登录用户,成功登录后我需要捕获用户身份验证详细信息,如 sessionID .etc。

标签: c# vsto webbrowser-control webclient-download


【解决方案1】:

尝试调用 Navigate 方法

webBrowser1.Navigate(new Uri(address));

然后调用 WebBrowser.OnNavigated 方法。

private void webBrowser1_Navigated(object sender,
    WebBrowserNavigatedEventArgs e)
{
    // get webBrowser1.DocumentText Property or webBrowser1. DocumentStream 

您可以尝试WebBrowser.InvokeScript this link 获取javascript 变量或ịnject javascript 以获取Rest APi url 或Rest API 内容

【讨论】:

  • 这个方法只能调用GET restful api。 PUT/DELETE 等呢?
  • 是的,它工作正常,但我的 url 结果是一个我需要捕获的字符串。如何将该字符串捕获到变量中?
  • 如果上述方法有效 - 这意味着您的 api 只是 GET。一旦 Navigated 事件被击中(如上面的示例),读取 control.DocumentText
  • 上述方法有效,但要求将下载的内容保存为 json 文件。
  • 我不想下载为文件,我想将该信息捕获为字符串变量
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-07-26
  • 1970-01-01
  • 1970-01-01
  • 2014-07-29
  • 1970-01-01
相关资源
最近更新 更多