Restsharp: InvalidDataException: ์ค„ ๊ธธ์ด ์ œํ•œ 100์„ ์ดˆ๊ณผํ–ˆ์Šต๋‹ˆ๋‹ค.

์— ๋งŒ๋“  2018๋…„ 10์›” 25์ผ  ยท  5์ฝ”๋ฉ˜ํŠธ  ยท  ์ถœ์ฒ˜: restsharp/RestSharp

RestSharp๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ๋ฐ์ดํ„ฐ ํŒŒ์ผ์„ .Net Core 2.1 REST ์ธํ„ฐํŽ˜์ด์Šค์— ์—…๋กœ๋“œํ•  ๋•Œ ์ผ๋ถ€ ํŒŒ์ผ์—์„œ ๋‹ค์Œ ์˜ค๋ฅ˜๊ฐ€ ๋ฐœ์ƒํ•ฉ๋‹ˆ๋‹ค.

System.IO.InvalidDataException: Line length limit 100 exceeded.
   at Microsoft.AspNetCore.WebUtilities.BufferedReadStream.ReadLineAsync(Int32 lengthLimit, CancellationToken cancellationToken)
   at Microsoft.AspNetCore.WebUtilities.MultipartReaderStream.ReadAsync(Byte[] buffer, Int32 offset, Int32 count, CancellationToken cancellationToken)
   at Microsoft.AspNetCore.WebUtilities.StreamHelperExtensions.DrainAsync(Stream stream, ArrayPool`1 bytePool, Nullable`1 limit, CancellationToken cancellationToken)
   at Microsoft.AspNetCore.WebUtilities.MultipartReader.ReadNextSectionAsync(CancellationToken cancellationToken)

Insomnia๋กœ ๋™์ผํ•œ ์ž‘์—…์„ ์ˆ˜ํ–‰ํ•  ๋•Œ ์˜ค๋ฅ˜๊ฐ€ ๋ฐœ์ƒํ•˜์ง€ ์•Š๊ณ  RestSharp์—์„œ๋งŒ ๋ฐœ์ƒํ•ฉ๋‹ˆ๋‹ค.

https://stackoverflow.com/questions/44642701/microsoft-aspnetcore-webutilities-line-length-limit-100-exceeded ์ค„ ๋ ํ˜•์‹์— ๋ฌธ์ œ๊ฐ€ ์žˆ๋‹ค๋Š” ๊ฒƒ์„ ์ฝ์—ˆ์ง€๋งŒ ์ด์— ๋Œ€ํ•œ ์œ ์ผํ•œ ๊ธฐ์‚ฌ์ž…๋‹ˆ๋‹ค. .

์ปจํŠธ๋กค๋Ÿฌ ์„œ๋ช…์€ ๋งค์šฐ ๊ฐ„๋‹จํ•ฉ๋‹ˆ๋‹ค.

[HttpPost, DisableRequestSizeLimit]
public async Task<IActionResult> AddPictureAsync(
    IFormFile Picture,
    IFormFile Thumbnail,
    string Title)
{

๋ณด๋‚ผ ์ฝ”๋“œ๋Š” ๋‹ค์Œ๊ณผ ๊ฐ™์Šต๋‹ˆ๋‹ค.

var Request = new RestRequest("picture", Method.POST) { AlwaysMultipartFormData = true };
Request.AddHeader("SessionId", SessionId);
Request.AddFile("Picture", PhotoData.ToArray(), Photo.PhotoUrl);
Request.AddFile("Thumbnail", ThumbnailData, Photo.PhotoUrl.Replace(".jpg", "-t.jpg"));
Request.AddParameter("Title", Photo.Title ?? string.Empty, ParameterType.GetOrPost);

๊ฐ€์žฅ ์œ ์šฉํ•œ ๋Œ“๊ธ€

ETA๊ฐ€ ์žˆ์Šต๋‹ˆ๊นŒ? ์ง€๊ธˆ์€ ํ˜ธ์ถœ์„ ์„ฑ๊ณต์‹œํ‚ค๊ธฐ ์œ„ํ•ด RestSharp์—์„œ ์ฝ”๋“œ๋ฅผ ์˜ฎ๊ฒจ์•ผ ํ•ฉ๋‹ˆ๋‹ค.

๋ชจ๋“  5 ๋Œ“๊ธ€

RestSharp๋ฅผ HttpClient๋กœ ๋Œ€์ฒดํ–ˆ์Šต๋‹ˆ๋‹ค. ๋™์ผํ•œ ํ˜ธ์ถœ, ๋™์ผํ•œ ๋ฐ์ดํ„ฐ, ์ž‘๋™ํ•ฉ๋‹ˆ๋‹ค. ๋”ฐ๋ผ์„œ ๋ฌธ์ œ๋Š” ํ™•์‹คํžˆ RestSharp์— ์žˆ์Šต๋‹ˆ๋‹ค.
์ „๋‹ฌ๋œ ๋ฐ์ดํ„ฐ์˜ ํ˜•์‹๊ณผ ๊ด€๋ จ์ด ์žˆ๋Š” ๊ฒƒ ๊ฐ™์Šต๋‹ˆ๋‹ค. Mac์—์„œ ์‹คํ–‰ํ•˜๋ฏ€๋กœ ๋ฐ์ดํ„ฐ ๋์— ์˜ˆ์ƒ๋˜๋Š” CRLF์™€ ๊ด€๋ จํ•˜์—ฌ ๋‚ด๊ฐ€ ์ œ๊ณตํ•œ ๋งํฌ์—์„œ ์ œ๊ธฐ๋œ ๋ฌธ์ œ๊ฐ€ ๋ฌธ์ œ์ผ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
๋‚˜๋Š” ๋˜ํ•œ .NET Core ํ”„๋กœ์ ํŠธ์— ๊ธ€์„ ์ผ๊ณ  ๊ทธ๋“ค์€ ๊ฐ™์€ ๋ฌธ์ œ๋ฅผ ์ง€์ ํ–ˆ์Šต๋‹ˆ๋‹ค.

RestSharp๋Š” Mac์—์„œ ์ค„ ๋ ์ธ์ฝ”๋”ฉ์„ ๋‹ค๋ฅด๊ฒŒ ์ˆ˜ํ–‰ํ•ฉ๋‹ˆ๋‹ค.

๊ธ€์Ž„, SO์— ๋Œ€ํ•œ ๋Œ€๋‹ต์€ ๋ช…ํ™•ํ•ฉ๋‹ˆ๋‹ค. ์šฐ๋ฆฌ๋Š” ๋˜ํ•œ Environment.LineBreak ํ•˜์ง€๋งŒ ๋ฌผ๋ก  ์ด๊ฒƒ์€ ํด๋ผ์ด์–ธํŠธ ํ™˜๊ฒฝ์—์„œ ์˜จ ๊ฒƒ์ด๊ณ  ์„œ๋ฒ„๋Š” ๋‹ค๋ฅธ ํ™˜๊ฒฝ์„ ๊ฐ€์งˆ ์ˆ˜ ์žˆ์œผ๋ฏ€๋กœ ์ค‘๋‹จ๋ฉ๋‹ˆ๋‹ค. ๋‹ค์Œ ๋ฒ„์ „์—์„œ ํ•ด๊ฒฐํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

๋‚˜๋Š” ์—ฌ๋Ÿฌ๋ถ„์—๊ฒŒ https://tools.ietf.org/html/rfc2616 ์„ ๊ฐ€๋ฆฌํ‚ค๊ณ  ์‹ถ์Šต๋‹ˆ๋‹ค

ETA๊ฐ€ ์žˆ์Šต๋‹ˆ๊นŒ? ์ง€๊ธˆ์€ ํ˜ธ์ถœ์„ ์„ฑ๊ณต์‹œํ‚ค๊ธฐ ์œ„ํ•ด RestSharp์—์„œ ์ฝ”๋“œ๋ฅผ ์˜ฎ๊ฒจ์•ผ ํ•ฉ๋‹ˆ๋‹ค.

๊ทธ๊ฒƒ์€ ์˜ค๋ž˜ ์ „์— ์ˆ˜์ •๋˜์—ˆ์Šต๋‹ˆ๋‹ค.

์ด ํŽ˜์ด์ง€๊ฐ€ ๋„์›€์ด ๋˜์—ˆ๋‚˜์š”?
0 / 5 - 0 ๋“ฑ๊ธ‰