static HttpWebRequest CreateRequest(String url, ArrayList messages, int bufferLenth, int threadId)
        {
            BatchedMessages batchedMessages = new BatchedMessages(bufferLenth);

            foreach (Message msg in messages)
            {
                if (!batchedMessages.PutMessage(msg))
                {
                    throw new Exception("Can't put message");
                }
            }

            byte[] ret = batchedMessages.GetData();

            while (true)
            {
                try
                {
                    // Create a request for the URL.
                    HttpWebRequest request = (HttpWebRequest)WebRequest.Create(url);
                    request.KeepAlive = true;
                    request.Method    = "POST";
                    // If required by the server, set the credentials.
                    request.Credentials = CredentialCache.DefaultCredentials;

                    //request.ContentLength = ret.Length;
                    request.ContentType = "application/x-www-urlencoded";
                    using (var requestStream = request.GetRequestStream())
                    {
                        requestStream.Write(ret, 0, ret.Length);
                    }
                    //request.Timeout = 150000;
                    request.CachePolicy = new RequestCachePolicy(RequestCacheLevel.BypassCache);
                    return(request);
                }
                catch (Exception ex)
                {
                    Logger2.ErrorFormat("Exception while create request: Thread {0} Will sleep {1} ms,  {2}", threadId, perfTestOption.SleepInMSWhenException, ExceptionUtil.GetExceptionDetailInfo(ex));
                    Thread.Sleep(perfTestOption.SleepInMSWhenException);
                }
            }
        }
        static HttpWebRequest CreateRequest(String url, ArrayList messages, int bufferLenth, int threadId)
        {
            BatchedMessages batchedMessages = new BatchedMessages(bufferLenth);
            foreach (Message msg in messages)
            {
                if (!batchedMessages.PutMessage(msg))
                {
                    throw new Exception("Can't put message");
                }
            }

            byte[] ret = batchedMessages.GetData();

            while (true)
            {
                try
                {
                    // Create a request for the URL.
                    HttpWebRequest request = (HttpWebRequest)WebRequest.Create(url);
                    request.KeepAlive = true;
                    request.Method = "POST";
                    // If required by the server, set the credentials.
                    request.Credentials = CredentialCache.DefaultCredentials;

                    //request.ContentLength = ret.Length;
                    request.ContentType = "application/x-www-urlencoded";
                    using (var requestStream = request.GetRequestStream())
                    {
                        requestStream.Write(ret, 0, ret.Length);
                    }
                    //request.Timeout = 150000;
                    request.CachePolicy = new RequestCachePolicy(RequestCacheLevel.BypassCache);
                    return request;
                }
                catch (Exception ex)
                {
                    Logger2.ErrorFormat("Exception while create request: Thread {0} Will sleep {1} ms,  {2}", threadId, perfTestOption.SleepInMSWhenException, ExceptionUtil.GetExceptionDetailInfo(ex));
                    Thread.Sleep(perfTestOption.SleepInMSWhenException);
                }

            }
        }