0

以下のコードは、データの読み取りに 150 ~ 200 秒かかります (実際、私の応答データは非常に大きいです)。この問題を解決するための代替案を教えてください。

Protected Function PostXml(ByVal url As String, ByVal xml As String) As String     
    Dim strResult As String = String.Empty   
    Dim bytes As Byte() = Encoding.UTF8.GetBytes(xml) 
    Dim request As HttpWebRequest = DirectCast(WebRequest.Create(url), HttpWebRequest)     
    request.Method = "POST"    
    request.ContentLength = bytes.Length    
    request.ContentType = "text/xml"   

    Using requestStream As Stream = request.GetRequestStream()    
            requestStream.Write(bytes, 0, bytes.Length)    
    End Using    

    Using response As HttpWebResponse = DirectCast(request.GetResponse(), HttpWebResponse)   

         If response.StatusCode <> HttpStatusCode.OK Then   
                Dim message As String = [String].Format("POST failed. Received HTTP {0}", response.StatusCode)   
                Throw New ApplicationException(message)   

         Else   
                Dim reader As StreamReader = Nothing    
                Dim responseStream As Stream = response.GetResponseStream()    
                reader = New StreamReader(responseStream, Encoding.Default)    
                **strResult = reader.ReadToEnd()  'Here is taking to much time**     
                response.Close()    
                responseStream.Close()     
                reader.Close()     
          End If     
    End Using
4

1 に答える 1

0

応答を制御している場合 (URL は管理しているサーバーを指しています)、GZIP 圧縮を有効にすることができます。

http://blog.arvixe.com/how-to-enable-gzip-on-iis7/

于 2012-06-09T05:13:58.673 に答える