我正在使用 dotnet Core 3.x 开发 WPF Web 客户端,并且正在使用 System.Text.Json API。我正在尝试使用 aStream
在对象之间传递数据以最小化峰值内存使用量,因为正在发送一些大消息。
到目前为止,我编写的包装器方法如下所示:
public async Task<TResponse> PutItem<TItem, TResponse>(string path, TItem item)
{
HttpResponseMessage response;
await using (Stream stream = new MemoryStream())
{
await JsonSerializer.SerializeAsync(stream, item);
var requestContent = new StreamContent(stream);
requestContent.Headers.ContentType = new MediaTypeHeaderValue("application/json");
response = await _client.PutAsync(path, requestContent);
}
if (!response.IsSuccessStatusCode || response.Content == null)
{
return default;
}
string content = await response.Content.ReadAsStringAsync();
TResponse decodedResponse = JsonSerializer.Deserialize<TResponse>(content);
return decodedResponse;
}
但是,当 PUT 到服务器时,它似乎没有写入任何内容。
我已经看到早期 API 的用户使用PushStreamContent
该类,但是这似乎在 dotnet Core 中不存在。
任何想法将不胜感激,谢谢!