我正在做一个从服务器下载多达5000个独立数据的项目。它基本上是一个PHP页面,它接受POST变量,从数据库获取数据并将其发送回。net客户端。
它很慢。每个请求大约需要1秒。我在谷歌上搜索了很多,并尝试了各种各样的代码调整,比如著名的代理设置等。但没有什么能加速它。
知道的吗?所有的解决方案,使这个超级快是受欢迎的。甚至是c语言编写的DLL或者任何你能想到的东西。这只是需要更快。
Public Function askServer(oCode As String) As String
oBytesToSend = Encoding.ASCII.GetBytes("cmd=" & System.Web.HttpUtility.UrlEncode(oCode))
Try
oRequest = WebRequest.Create(webServiceUrl)
oRequest.Timeout = 60000
oRequest.Proxy = WebRequest.DefaultWebProxy
CType(oRequest, HttpWebRequest).UserAgent = "XXXXX"
oRequest.Method = "POST"
oRequest.ContentLength = oBytesToSend.Length
oRequest.ContentType = "application/x-www-form-urlencoded"
oStream = oRequest.GetRequestStream()
oStream.Write(oBytesToSend, 0, oBytesToSend.Length)
oResponse = oRequest.GetResponse()
If CType(oResponse, HttpWebResponse).StatusCode = Net.HttpStatusCode.OK Then
oStream = oResponse.GetResponseStream()
oReader = New StreamReader(oStream)
oResponseFromServer = oReader.ReadToEnd()
oResponseFromServer = System.Web.HttpUtility.UrlDecode(oResponseFromServer)
Return oResponseFromServer
Else
MsgBox("Server error", CType(vbOKOnly + vbCritical, MsgBoxStyle), "")
Return ""
End If
Catch e As Exception
MsgBox("Oops" & vbCrLf & e.Message, CType(vbOKOnly + vbCritical, MsgBoxStyle), "")
Return ""
End Try
End Function
一些想法:
- 并行运行http请求。(客户端)
- 如果数据响应大小允许它在一个请求中获得所需的所有数据(您需要更改您的服务器实现)。
- 缓存数据。(服务器)