我有一個測驗.Net Core應用程式,我想從管道中讀取 http 回應以用于我的個人實踐。
此最小代碼示例提供 http 回應。我知道它正在破壞回應主體,我需要稍后修復它,但這不是我的問題。我的問題是MemoryStream(),即使我沒有使用任何資料源對其進行初始化,它里面的 http 回應如何?
"Startup.cs":
public void Configure(IApplicationBuilder app)
{
app.Use(async (context, next) =>
{
using (var swapStream = new MemoryStream())
{
context.Response.Body = swapStream;
await next.Invoke();
swapStream.Seek(0, SeekOrigin.Begin);
string responseBody = new StreamReader(swapStream).ReadToEnd();
}
});
}
如您所見,MemoryStream()根本沒有使用任何資料源進行初始化。但最終responseBody我可以看到我的 http 回應。讓我更困惑的是,如果我洗掉,context.Response.Body = swapStream;那么我在responseBody.
如果有人能幫助我理解這段代碼是如何作業的,我們將不勝感激。
uj5u.com熱心網友回復:
其他東西正在寫入流,它發生在您呼叫
await next.Invoke();
您正在用您的記憶體流替換回應流,并且鏈中稍后的內容寫入該流。
轉載請註明出處,本文鏈接:https://www.uj5u.com/gongcheng/343441.html
上一篇:GNUMake條件ifneq檢查至少一個變數不是不為空
下一篇:如何獲得每個會員的最快時間
