2016-05-17 12 views
1

Flurlを使用して簡単なリクエストを投稿しようとしています。しかし、takenPictureの文字列が大きすぎるため、例外があります。 Flurlを使用して大きな文字列を投稿する方法はありますか?Flurlを使用して画像base64を投稿

System.UriFormatException:Uriが最大32766文字を超えています。

var postData = BaseAdress.PostUrlEncodedAsync(new { 
    text = Uri.EscapeDataString(body), 
    subject = Uri.EscapeDataString(subject), 
    from_email = from, 
    recipient_email = to, 
    picture = takenPicture //Base64 string 
}); 

答えて

1

この制限は、ほとんど任意しながら、一般的にURLのクエリとURLエンコードリクエストボディの両方のデータを符号化するために、アプリケーションと(Flurl含む)ライブラリによって使用され、by design in Microsoft's Uri.EscapeDataString methodあります。 XamarinRestSharp Portableの両方がこのように処理されているので、回避策が可能であると確信しており、create an issueにしたい場合はFlurlでこれを考慮する可能性があります。

しかし、画像などのURLエンコードバイナリデータは非常に珍しいことであり、可能な場合は回避するためにgood reasonsがあることに注意してください。もちろん、これがサードパーティのAPIであれば、選択肢はほとんどありません。しかし、サーバー側のコードを管理している場合は、代わりにmultipart/form-dataを受け入れるようにリファクタリングすることをお勧めします。

関連する問題