我忙于一个必须将数据上传到网站的c#应用程序。我使用http post来上传数据,但对于我们的应用来说太慢了。上传少量数据需要大约1.5秒的时间。我尝试了两种不同的方法。c#发布http请求缓慢
方法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();
Approach2,使用Web客户端:
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#中做到这一点。
C#和Javascript运行在同一台机器和网络环境中吗? – 2013-02-14 04:51:49
你确定这不是服务器问题吗? – BrokenGlass 2013-02-14 04:51:52
可能的DNS查找导致缓慢。 – leppie 2013-02-14 05:12:37