2010-08-15 101 views
0

我正在从某些文本的web服务器的请求,并使用下面的代码在一个文本框显示它:为什么我的VB.Net WebClient.DownloadString请求需要这么久?

Dim client As WebClient = New WebClient() 
    Dim theText As String = client.DownloadString("http://192.168.1.110/text.html") 
    Me.TextBox1.Text = theText 

当我运行它的“client.DownloadString”命令接受6或7秒内完成(获取大约20个字节的文本)。如果我在网络浏览器中提出这个相同的请求,它基本上是立即的。我在其他网站上阅读了一些相关的帖子,但是代理成员(client.Proxy)需要为空。鉴于VB.Net不支持空我把它设置为“没有”,但没有改变性能。任何想法,为什么这是缓慢的?

更新...是的,请求成功。它只需要6或7秒。第一次打电话时,速度很慢。如果我删除文本框的内容并再次运行它,它是立即的。我对此进行了一些研究,发现它与设置从IE浏览器设置读取的默认代理(client.Proxy)有关。再次,我已经看到这个问题在其他帖子解决,但从来没有在VB.Net和解决方案总是设置client.Proxy =空。但是,VB.Net不支持NULL。我试图将其设置为“无”,但似乎没有帮助。

+0

并请求成功吗?这可能是服务器端问题吗? – 2010-08-15 03:11:11

+0

是否有可能使用wireshark获取数据包跟踪?如果你能做到这一点,你可以找出延迟是在线还是在.NET层。 – Gangadhar 2010-08-15 03:49:55

回答

2

我曾与URL请求长延迟同样的问题,但作为编码为我的工作如下:

 objwebClient = New WebClient() 
     objwebClient.Proxy = Nothing