C#Webrequest to Sockets

时间:2014-01-20 07:31:43

标签: c# multithreading sockets httpwebrequest

我有一个启动多个线程的应用程序,每个线程都会向远程服务器发送请求。在分析之后,我注意到发送和播放的时间最多。处理请求。这是功能:

    private string GetRequest(string url, string postFields)
    {
        HttpWebRequest request = (HttpWebRequest)WebRequest.Create(url);
        request.Proxy = proxy;
        request.AutomaticDecompression = DecompressionMethods.Deflate | DecompressionMethods.GZip;
        request.Host = Constants.URLDomain;
        request.KeepAlive = true;
        request.Accept = Constants.Accept;
        request.ContentType = "application/json";
        request.Headers.Add("MyHeader1", "true");
        request.Headers.Add("MyHeader2", "header2value");
        request.Headers.Add("MyHeader3", "header3value");
        request.Method = "POST";

        byte[] postBytes = Encoding.UTF8.GetBytes(postFields);
        request.ContentLength = postBytes.Length;

        using (Stream postStream = request.GetRequestStream())
        {
            postStream.Write(postBytes, 0, postBytes.Length);
        }

        string text = string.Empty;

        using (HttpWebResponse response = (HttpWebResponse)request.GetResponse())
        {
            using (Stream answer = response.GetResponseStream())
            using (StreamReader reader = new StreamReader(answer, System.Text.Encoding.UTF8))
            {
                text = reader.ReadToEnd();
            }
        }

        return text;
    }

我正在考虑更改此代码以使用套接字,以便我可以提高性能。如果我改为套接字,实际上会有改进吗,更重要的是,上面代码的套接字实现怎么样?

0 个答案:

没有答案