C# 从中间件发送JSON响应
代码如下:C# 从中间件发送JSON响应,c#,asp.net-core,C#,Asp.net Core,代码如下: public Task Invoke(HttpContext httpContext) { if (Http_Server.mode == 2) return InteractivityTask(httpContext); else return _next(httpContext); } public async Task<Http
public Task Invoke(HttpContext httpContext)
{
if (Http_Server.mode == 2)
return InteractivityTask(httpContext);
else
return _next(httpContext);
}
public async Task<HttpResponse> InteractivityTask(HttpContext httpContext) {
HttpResponse response = httpContext.Response;
string s = getResponseBody();
response.Clear();
MemoryStream ms = GenerateStreamFromString(s);
response.Body = ms;
response.ContentType = "application/json";//not sure
}
return response;
}
public MemoryStream GenerateStreamFromString(string value)
{
return new MemoryStream(Encoding.UTF8.GetBytes(value ?? ""));
}
公共任务调用(HttpContext HttpContext)
{
如果(Http_Server.mode==2)
返回交互任务(httpContext);
其他的
返回_next(httpContext);
}
公共异步任务交互任务(HttpContext HttpContext){
HttpResponse response=httpContext.response;
字符串s=getResponseBy();
response.Clear();
MemoryStream ms=GenerateStreamFromString;
响应。Body=ms;
response.ContentType=“application/json”;//不确定
}
返回响应;
}
公共内存流生成器StreamFromString(字符串值)
{
返回新的MemoryStream(Encoding.UTF8.GetBytes(值??);
}
我没有收到响应的正文,只是收到了空白正文的状态代码。尝试以下操作:
response.Body.Write(ms.ToArray(), 0, (int)ms.Length);
而不是:
response.Body = ms;