Fix request encoding error

This commit is contained in:
2023-09-21 19:40:07 +08:00
parent a71048d905
commit 762bf9cb80
3 changed files with 20 additions and 20 deletions

View File

@ -122,7 +122,7 @@ namespace Eavesdrop
if (requestArgs.Cancel) return; if (requestArgs.Cancel) return;
request = requestArgs.Request; request = requestArgs.Request;
if (requestArgs.Content != null) if (requestArgs.Content != null && requestArgs.Content != requestContent)
{ {
await local.WriteRequestContentAsync(request, requestArgs.Content).ConfigureAwait(false); await local.WriteRequestContentAsync(request, requestArgs.Content).ConfigureAwait(false);
} }

View File

@ -325,18 +325,18 @@ namespace Eavesdrop.Network
} }
Stream input = response.GetResponseStream(); Stream input = response.GetResponseStream();
if (response is HttpWebResponse httpResponse && !string.IsNullOrWhiteSpace(httpResponse.ContentEncoding)) //if (response is HttpWebResponse httpResponse && !string.IsNullOrWhiteSpace(httpResponse.ContentEncoding))
{ //{
switch (httpResponse.ContentEncoding) // switch (httpResponse.ContentEncoding)
{ // {
//case "br": input = new BrotliStream(input, CompressionMode.Decompress); break; // //case "br": input = new BrotliStream(input, CompressionMode.Decompress); break;
case "gzip": input = new GZipStream(input, CompressionMode.Decompress); break; // case "gzip": input = new GZipStream(input, CompressionMode.Decompress); break;
case "deflate": input = new DeflateStream(input, CompressionMode.Decompress); break; // case "deflate": input = new DeflateStream(input, CompressionMode.Decompress); break;
} // }
response.Headers.Remove(HttpResponseHeader.ContentLength); // response.Headers.Remove(HttpResponseHeader.ContentLength);
response.Headers.Remove(HttpResponseHeader.ContentEncoding); // response.Headers.Remove(HttpResponseHeader.ContentEncoding);
response.Headers.Add(HttpResponseHeader.TransferEncoding, "chunked"); // response.Headers.Add(HttpResponseHeader.TransferEncoding, "chunked");
} //}
return new StreamContent(input, response.ContentLength > 0 ? (int)response.ContentLength : 4096); return new StreamContent(input, response.ContentLength > 0 ? (int)response.ContentLength : 4096);
} }
public static async Task<byte[]> GetPayload(Stream input, long length) public static async Task<byte[]> GetPayload(Stream input, long length)

View File

@ -135,10 +135,10 @@ namespace GrasscutterTools.Utils
case "accept" : newRequest.Accept = request.Accept; break; case "accept" : newRequest.Accept = request.Accept; break;
case "referer" : newRequest.Referer = request.Referer; break; case "referer" : newRequest.Referer = request.Referer; break;
case "user-agent" : newRequest.UserAgent = request.UserAgent; break; case "user-agent" : newRequest.UserAgent = request.UserAgent; break;
case "content-type": newRequest.ContentType = request.ContentType; break; case "content-type" : newRequest.ContentType = request.ContentType; break;
case "content-length": newRequest.ContentLength = request.ContentLength; break; case "content-length" : newRequest.ContentLength = request.ContentLength; break;
case "if-modified-since": newRequest.IfModifiedSince = request.IfModifiedSince; break; case "if-modified-since": newRequest.IfModifiedSince = request.IfModifiedSince; break;
case "date": newRequest.Date = request.Date; break; case "date" : newRequest.Date = request.Date; break;
default: newRequest.Headers[name] = request.Headers[name]; break; default: newRequest.Headers[name] = request.Headers[name]; break;
} }
} }