这段代码在控制台应用和WinForm应用程序中运行完美。
我想在使用httpwebrequest
无法检索数据的ASP.NET网站上使用相同的逻辑。
请告诉我如何解决这个问题。有什么比这更好的了。我已标记导致问题的行。
private void runBrowserThread()
{
var th = new Thread(() =>
{
var br = new WebBrowser();
br.DocumentCompleted += browser_DocumentCompletedNew;
br.Navigate("https://www.linkedin.com/uas/login");
Application.Run(); // ERROR ON THIS LINE
});
th.SetApartmentState(ApartmentState.STA);
th.Start();
}
void browser_DocumentCompletedNew(object sender,
WebBrowserDocumentCompletedEventArgs e)
{
var br = sender as WebBrowser;
if (br.Url == e.Url)
{
}
}
提前谢谢。
答案 0 :(得分:1)
我建议您使用System.Net.WebClient
或System.Net.HttpWebRequest
。
以下是使用HttpWebRequest
的简单示例:
WebRequest request = HttpWebRequest.Create("https://www.linkedin.com/uas/login");
request.Method = WebRequestMethods.Http.Get;
using (WebResponse response = request.GetResponse())
{
StreamReader reader = new StreamReader(response.GetResponseStream());
string responseText = reader.ReadToEnd();
reader.Close();
}
答案 1 :(得分:0)
您必须采用另一种方式,因为Application仅在Windows.Form类的上下文中有效。即使它正在工作,所有Application.Run都会运行一个什么都不做的线程。
我强烈建议你保留这个桌面应用程序,你正在尝试做的,并不适合Web应用程序。
如果您需要帮助,您必须向我们提供更多信息。你现在拥有的代码几乎没有任何实质内容。