我正忙于必须将数据上传到站点的 ac# 应用程序。我使用 http post 上传数据,但对于我们的应用程序来说太慢了。上传少量数据大约需要 1.5 秒。我尝试了两种不同的方法。
方法1,使用WebRequest:
WebRequest request = WebRequest.Create(packet.url.ToString());
request.Method = "POST";
request.Proxy = null;
byte[] byteArray = Encoding.UTF8.GetBytes(packet.postData);
request.ContentType = "application/x-www-form-urlencoded";
request.ContentLength = byteArray.Length;
Stream dataStream = request.GetRequestStream();
dataStream.Write(byteArray, 0, byteArray.Length);
dataStream.Close();
WebResponse response = request.GetResponse();
dataStream = response.GetResponseStream();
StreamReader reader = new StreamReader(dataStream);
string responseFromServer = reader.ReadToEnd();
reader.Close();
dataStream.Close();
response.Close();
方法2,使用WebClient:
string responseFromServer;
using (WebClient wc = new WebClient())
{
wc.Headers[HttpRequestHeader.ContentType] = "application/x-www-form-urlencoded";
responseFromServer = wc.UploadString(packet.url, packet.postData);
}
两者都具有完全相同的延迟。我在javascript中测试了同样的东西。我使用 xmlhttprequest 将相同的数据发布到服务器,上传数据的时间不到 0.5 秒。请让我知道在 C# 中是否有更快的方法来执行此操作。