GET источники управления веб-браузером, используя asp.net

Как получить источник другого веб-сайта с помощью элемента управления WebBrowser() в коде asp.net за страницей.

Пока у меня это есть, но у меня нет каких-либо опций для навагации или набора файлов cookie или для получения источника с загрузкой страницы? вы можете помочь?

Imports System.Windows.Forms
Partial Class _Default
 Inherits System.Web.UI.Page
 Dim a As WebBrowser = New WebBrowser()
 webBrowser1.Navigate("http://www.google.com")
 'get the source
End Class

И я получаю эту ошибку

Элемент управления ActiveX '8856f961-340a-11d0-a96b-00c04fd705a2' не может быть экземпляр, потому что текущий поток не находится в однопоточном квартира.

3 ответа

это будет отлично работать

нам нужно добавить webbrowser с threading другим способом, мы получим элемент управления ActiveX '8856f961-340a-11d0-a96b-00c04fd705a2' не может быть создан, потому что текущий поток не находится в однопоточной квартире. ошибка

так мы можем заставить webbrowser работать на веб-страницах asp.net

using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Threading;
using System.Windows.Forms;
/// <summary>
/// Summary description for CustomBrowser
/// </summary>
public class CustomBrowser
{
 public CustomBrowser()
 {
 //
 // TODO: Add constructor logic here
 //
 }
 protected string _url;
 string html = "";
 public string GetWebpage(string url)
 {
 _url = url;
 // WebBrowser is an ActiveX control that must be run in a
 // single-threaded apartment so create a thread to create the
 // control and generate the thumbnail
 Thread thread = new Thread(new ThreadStart(GetWebPageWorker));
 thread.SetApartmentState(ApartmentState.STA);
 thread.Start();
 thread.Join();
 string s = html;
 return s;
 }
 protected void GetWebPageWorker()
 {
 using (WebBrowser browser = new WebBrowser())
 {
 // browser.ClientSize = new Size(_width, _height);
 browser.ScrollBarsEnabled = false;
 browser.ScriptErrorsSuppressed = true;
 browser.Navigate(_url);
 // Wait for control to load page
 while (browser.ReadyState != WebBrowserReadyState.Complete)
 Application.DoEvents();
 html = browser.DocumentText;
 }
 }
}

на веб-странице

CustomBrowser browser = new CustomBrowser();
string s = browser.GetWebpage("http://localhost:8781/WebSite3/Default3.aspx");
Response.Write(s);


То, что вы хотите сделать, немного неортодоксально в ASP.NET, но вот пример, который может вам помочь:

http://www.codeproject.com/Articles/50544/Using-the-WebBrowser-Control-in-ASP-NET


Я нашел ту же ошибку, когда я использовал объект webBrowser на странице asp.net. Но после того, как я нашел это решение,

qaru.site/questions/1711425/...

Теперь это нормально.

licensed under cc by-sa 3.0 with attribution.