当前位置:  开发笔记 > 编程语言 > 正文

在代码中从c#调用网页

如何解决《在代码中从c#调用网页》经验,为你挑选了4个好方法。

我需要一种从我的.net应用程序中调用网页的方法.

但我只想向页面发送请求而不用担心响应.

因为有时候响应可能需要一段时间,所以我不希望它挂起应用程序.

我一直在尝试使用page_load事件

WebClient webC = new WebClient();
Uri newUri = new Uri("http://localhost:49268/dosomething.aspx");
webC.UploadStringAsync(newUri, string.Empty);

即使它设置为Async,它仍然会挂起,因为页面不会完成渲染,直到线程已经完成



1> ckramer..:

这应该适合你:

System.Net.WebClient client = new System.Net.WebClient();
client.DownloadDataAsync(new Uri("http://some.url.com/some/resource.html"));

WebClient类具有用于在请求完成时通知调用者的事件,但由于您不关心,因此不应该有任何其他内容.



2> TheAlbear..:

Doak,几乎就在那里,但是每次我将任何请求放在一个sepreate线程中时,在所有线程完成运行之前,页面仍然不会呈现.

我找到的最好的方法是调整Doak的方法,只是在那里停留超时并吞下错误.

我知道它是一个黑客但它确实有效:P

WebRequest wr = WebRequest.Create("http://localhost:49268/dostuff.aspx");
wr.Timeout = 3500;

try
{
    HttpWebResponse response = (HttpWebResponse)wr.GetResponse();
}
catch (Exception ex)
{
    //We know its going to fail but that dosent matter!!
}



3> Patrick Desj..:

如果没有让应用程序挂起,则需要从Thread调用该方法.

对于没有答案的HTTP请求,类似的东西应该做的工作:

Thread myThread = new Thread(new ThreadStart(myMethodThatDoHttp));
    myThread.Start();
public void myMethodThatDoHttp()
{
    HttpWebRequest request  = (HttpWebRequest)WebRequest.Create("http://www..com");
    HttpWebResponse response = (HttpWebResponse)request.GetResponse();
}



4> Joel Coehoor..:

看一下System.Net.WebClient,专门使用该DownloadDataAsync()方法发送请求而不阻塞应用程序的其余部分.

推荐阅读
夏晶阳--艺术
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有