我有一个Web服务,它接收JSON格式的数据,处理数据,然后将结果返回给请求者.
我想使用测量请求,响应和总时间cURL.
我的示例请求如下:
curl -X POST -d @file server:port
Run Code Online (Sandbox Code Playgroud)
我目前使用timeLinux中的命令来测量它:
time curl -X POST -d @file server:port
Run Code Online (Sandbox Code Playgroud)
时间命令只测量总时间 - 这不是我想要的.
有没有办法测量请求和响应时间cURL?
我收到来自 web api 调用的响应作为流,需要将其反序列化为模型。
这是一个通用方法,所以我不能说代码的哪些部分将使用它以及响应负载是什么。
这是方法:
public async Task<T> InvokeAsync<T>(string method)
{
Stream response = await this.httpClientWrapper.InvokeAsync(method);
var serializer = new JsonSerializer();
using var streamReader = new StreamReader(response);
using var reader = new JsonTextReader(streamReader);
return serializer.Deserialize<T>(reader);
}
Run Code Online (Sandbox Code Playgroud)
我正在尝试删除 Newtonsoft 并使用System.Text.Json API。
我在 Github 的 corefx repo 中找到了这个移植指南,其中部分Read from a Stream/String指出:
我们目前(从 .NET Core 3.0 预览版 2 开始)没有方便的 API 来直接(同步或异步)从流中读取 JSON。对于同步读取(尤其是小型有效负载),您可以将 JSON 有效负载读取到流结束为止,并将其转换为字节数组并将其传递给读取器
所以按照这个建议,我想出了以下几点:
public async Task<T> InvokeAsync<T>(string method)
{
Stream response = await this.httpClientWrapper.InvokeAsync(method);
var …Run Code Online (Sandbox Code Playgroud) 函数需要返回Task<List<Record>>
以下两个选项都返回Task<List<Record>>,哪个更有效?这里有标准的方法吗?
选项1 :
Task<List<Record>> GetRecords()
{
return
DbContext.Set<Record>.Where(predicate).ToListAsync();
}
Run Code Online (Sandbox Code Playgroud)
选项 2:
Task<List<Record>> GetRecords()
{
return
DbContext.Set<Record>.Where(predicate).AsAsyncEnumerable().ToList();
}
Run Code Online (Sandbox Code Playgroud) c# tolist async-await entity-framework-core iasyncenumerable