Restsharp: InvalidDataException:行の長さの制限が100を超えました

作成日 2018年10月25日  ·  5コメント  ·  ソース: restsharp/RestSharp

RestSharpを使用してデータファイルを.NetCore 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を読みました-行末の形式に問題があることを超えましたが、これはそれに関する唯一の記事です。

コントローラの署名は非常に単純です。

[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 評価