none
关于WebClient的问题 RRS feed

  • 问题

  • 先看一下代码。

        Private Sub bgwLoad_DoWork(ByVal sender As System.Object, ByVal e As System.ComponentModel.DoWorkEventArgs) Handles bgwLoad.DoWork
            Try
                Dim SettingTxt() As String = File.ReadAllLines(SettingFileName)
                UserName = SettingTxt(0)
                UserPassword = SettingTxt(1)
                ServerKey = SettingTxt(2)
    
                '这里对数据进行DES加密
                Dim EncodeData As String = UserName & SplitText & ServerKey
                EncodeData = Encrypt(EncodeData)
                EncodeData = HttpUtility.UrlEncode(EncodeData)
                Debug.Print(EncodeData)
                Using client As WebClient = New WebClient()
                    Dim myQueryStringCollection As New Specialized.NameValueCollection()
                    myQueryStringCollection.Add("key", EncodeData)
                    client.QueryString = myQueryStringCollection
                    Dim reply As String = client.DownloadString(URL_1)
    
                    If reply.Trim = "1" Then
                        LoadOK = True
                    Else
                        dlgSetting.ShowDialog()
                    End If
                End Using
    
            Catch ex As Exception
                LoadOK = False
            End Try
        End Sub
    我用单独一个线程执行上面的东东。
    可是经常到了Dim reply As String = client.DownloadString(URL_1)这里就会超时,而且十次有九次都是超时。即使成功了也是很慢。
    我用浏览器直接访问速度相当快。目前可以排除网络速度问题。

    为什么用WebClient 就这么慢呢?是我哪里写错了吗?
    欢迎到我的博客一起讨论 http://www.raymanzhai.com
    2010年2月9日 3:22

答案

  • 你好,ServicePointManager.DefaultConnectionLimit 要设置成多少呢? 我设置成1不会超时,为10 则每次都超时


    能告诉我有什么区别吗?

    还有,为什么,比我在IE里打开慢的多的多呢?
    在IE里1秒不到就打开了.

    在这里要7-8秒
    郁闷

    欢迎到我的博客一起讨论 http://www.raymanzhai.com
    2010年2月9日 4:21

全部回复