C# 为什么此代码在WinForms中运行,而在ASP.NET中不运行?
这段代码在控制台应用程序和WinForm应用程序中运行良好 我希望在ASP.NET网站上使用相同的逻辑,在该网站上,无法使用C# 为什么此代码在WinForms中运行,而在ASP.NET中不运行?,c#,asp.net,winforms,C#,Asp.net,Winforms,这段代码在控制台应用程序和WinForm应用程序中运行良好 我希望在ASP.NET网站上使用相同的逻辑,在该网站上,无法使用httpwebrequest检索数据 请让我知道如何解决这个问题。还有比这更好的吗。我已经标记了导致问题的线路 private void runBrowserThread() { var th = new Thread(() => { var br = new WebBrowser(); br.DocumentCompl
httpwebrequest
检索数据
请让我知道如何解决这个问题。还有比这更好的吗。我已经标记了导致问题的线路
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)
{
}
}
提前感谢您。您必须换一种方式进行操作,因为应用程序仅在Windows.Form类的上下文中有效。即使它工作正常,Application.Run所能做的就是运行一个什么都不做的线程 我强烈建议您将其保留为桌面应用程序,您正在尝试的操作并不真正适合web应用程序
如果你需要帮助,你必须向我们提供更多的信息。此时,您拥有的代码几乎没有任何实质内容。我建议为此使用
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();
}
Application.Run通常仅在Winforms应用程序中使用。请参阅:为什么希望windows窗体控件在asp.net环境中工作?取消一个站点,但它不是纯html,它加载脚本大约30秒,然后显示数据,因此我使用了webbrowser控件。加载所有内容后,它将进入documentcompletedevent,以便我可以获得结果。还有别的办法吗?现在想在网站上在线运行同样的东西,所以需要帮助..使用Webclient类。啊,是的,还有一个问题,一些字段需要填写并提交。所以这是使用webbrowser控件的另一个原因,因为我在发出post请求方面没有太多的专业知识。我发布的场景不可能吗?看起来OP只是想做一些刮片,这非常适合web应用程序。它不能像在windows应用程序中那样完成。