I track request/response log in middleware of Api gateway .Net5, I can able to read Request.Body, However, I do not understand the body of the response, it show like below
`� <�_O�0G��r_����%>�"A�8��[��Im���
�w7n��{rO��/�կZ~y����36������rNIJ��d�w��\�'�����|w-�!�OR#Q�fi�X�� G��Sg�`��X@��{��KE�k�T3Zj%5N�@���+��SY��[�C(w� �·��@"�E���UnM�}��Jc�k�����F����#��$q�O(�.tÃ�c�ӕW���� �� ID�P`
Here I share my read response code
string responseBody = string.Empty;
var originalBodyStream = context?.Response.Body;
//Create a new memory stream...
using (var responseStream = new MemoryStream())
{
context.Response.Body = responseStream;
await _next.Invoke(context);
context.Response.Body.Seek(0, SeekOrigin.Begin);
responseBody = new StreamReader(context.Response.Body).ReadToEnd();
context.Response.Body.Seek(0, SeekOrigin.Begin);
await responseStream.CopyToAsync(originalBodyStream);
}
And this is my request header
{
"Accept":"application/json, text/plain, */*",
"Accept-Encoding":"gzip",
"Accept-Language":"en-GB,en-US;q=0.9,en;q=0.8",
"Connection":"Keep-Alive",
"Content-Length":"2",
"Content-Type":"application/json;charset=UTF-8",
}
I can read using SharpZipLib package, This code working for me
GZipInputStream unGzipStream = new GZipInputStream(response.Body);
var responseBodytxt = new StreamReader(unGzipStream).ReadToEnd();
response.Body.Seek(0, SeekOrigin.Begin);