从c#中的Request.BufferedInputStream读取100行(<;=100个字符)几乎需要6秒

从c#中的Request.BufferedInputStream读取100行(<;=100个字符)几乎需要6秒,c#,asp.net,C#,Asp.net,在这里,我尝试从请求体读取字符串行。每行包含一条sms消息的数据。将单行转换为单个sms对象。我在localhost中使用100行数据作为请求主体的post请求来测量时间。但这几乎需要6秒钟。我想应该快很多。有什么我遗漏的吗 Stopwatch stcc3 = new Stopwatch(); stcc3.Start(); string[] lines = body(); var list = convert(lines); stcc3.Stop(); Console.WriteLine("ti

在这里,我尝试从请求体读取字符串行。每行包含一条sms消息的数据。将单行转换为单个sms对象。我在localhost中使用100行数据作为请求主体的post请求来测量时间。但这几乎需要6秒钟。我想应该快很多。有什么我遗漏的吗

Stopwatch stcc3 = new Stopwatch();
stcc3.Start();
string[] lines = body();
var list = convert(lines);
stcc3.Stop();
Console.WriteLine("time3: " + stcc3.Elapsed);
下面是两个函数的主体

    private string[] body()
    {

        using (Stream inp = Request.GetBufferedInputStream())
        {
            using (StreamReader reader = new StreamReader(inp, Encoding.UTF8))
            {
                List<String> lines = new List<string>();
                while(!reader.EndOfStream)
                {
                    lines.Add(reader.ReadLine());
                }
                return lines.ToArray();
            }
        }
    }

    private List<ISms> convert(string[] lines)
    {
        List<ISms> list = new List<ISms>();
        for (int idx = 0; idx < lines.Length; idx++)
        {
            string ln = lines[idx];
            ISms iSms = new ISms();
            string[] wd = ln.Split(new char[] { '|' });
            int i = 0;
            iSms.id = parseInt(wd[i++]);
            iSms.messageDate = DateTime.Parse(wd[i++]);
            iSms.receiveDate = DateTime.Parse(wd[i++]);
            iSms.originator = wd[i++];
            iSms.text = wd[i++];
            list.Add(iSms);
        }
        return list;
    }
我正在从一个java程序发出post请求。我已经使用SpringRESTTemplate向上述c#mvc控制器发出post请求。这是密码

        HttpHeaders httpHeaders = new HttpHeaders();
        httpHeaders.add(HttpHeaders.AUTHORIZATION, authToken);
        interceptHeaders(httpHeaders);
        OSms[] oSmsArray = rt.postForObject(getPostUrl(), new HttpEntity(convert(queue), httpHeaders), OSms[].class);
        onSuccess(queue);
        onSuccess(oSmsArray);
这是转换函数的主体

public static String convert(List<ISms> queue) {
    StringBuilder sb = new StringBuilder();
    queue.forEach((sms) -> {
        sb
                .append(sms.getId())
                .append(seperator)
                .append(convert(sms.getMessageDate()))
                .append(seperator)
                .append(convert(sms.getReceiveDate()))
                .append(seperator)
                .append(sms.getOriginator())
                .append(seperator)
                .append(sms.getText())
                .append('\n');
    });
    return sb.toString();
}
公共静态字符串转换(列表队列){
StringBuilder sb=新的StringBuilder();
queue.forEach((sms)->{
某人
.append(sms.getId())
.append(分隔符)
.append(转换(sms.getMessageDate()))
.append(分隔符)
.append(转换(sms.getReceiveDate()))
.append(分隔符)
.append(sms.getOriginator())
.append(分隔符)
.append(sms.getText())
.append('\n');
});
使某人返回字符串();
}

您是否可以注释掉
var list=convert(行)public static String convert(List<ISms> queue) {
    StringBuilder sb = new StringBuilder();
    queue.forEach((sms) -> {
        sb
                .append(sms.getId())
                .append(seperator)
                .append(convert(sms.getMessageDate()))
                .append(seperator)
                .append(convert(sms.getReceiveDate()))
                .append(seperator)
                .append(sms.getOriginator())
                .append(seperator)
                .append(sms.getText())
                .append('\n');
    });
    return sb.toString();
}