Vb.net HttpwebRequest和response需要时间
下面的代码读取数据需要150到200秒(实际上我的响应数据非常大) 请提供解决此问题的备选方案。Vb.net HttpwebRequest和response需要时间,vb.net,Vb.net,下面的代码读取数据需要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
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
受保护的函数PostXml(ByVal url作为字符串,ByVal xml作为字符串)作为字符串
Dim strResult As String=String.Empty
Dim bytes As Byte()=Encoding.UTF8.GetBytes(xml)
Dim请求作为HttpWebRequest=DirectCast(WebRequest.Create(url),HttpWebRequest)
request.Method=“POST”
request.ContentLength=bytes.Length
request.ContentType=“text/xml”
使用requestStream作为Stream=request.GetRequestStream()
requestStream.Write(字节、0、字节、长度)
终端使用
使用响应作为HttpWebResponse=DirectCast(request.GetResponse(),HttpWebResponse)
如果response.StatusCode HttpStatusCode.OK,则
Dim消息为字符串=[String]。格式(“POST失败。收到HTTP{0}”,响应。状态码)
抛出新的ApplicationException(消息)
其他的
将读卡器变暗为StreamReader=无
Dim responseStream As Stream=response.GetResponseStream()
reader=新的StreamReader(responseStream,Encoding.Default)
**strResult=reader.ReadToEnd()'这里花费了很多时间**
答复:Close()
responseStream.Close()
reader.Close()
如果结束
终端使用
如果要控制响应(url指向您管理的服务器),可以打开GZIP压缩
什么是“非常大”?除非你有一个非常快的链接,否则large=slow。我认为你应该一直关闭你的响应,即使状态代码不正常