2016-05-17 2 views
1

Je suis en train d'envoyer une requête simple en utilisant Flurl. Mais il y a une exception, car la chaîne takenPicture est trop grande. Y at-il un moyen d'afficher une grande chaîne en utilisant Flurl?Post image base64 en utilisant Flurl

System.UriFormatException: Uri est plus long que le nombre maximal de 32766 caractères.

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

Répondre

1

Cette limitation, alors qu'un peu arbitraire, est by design in Microsoft's Uri.EscapeDataString method, qui est couramment utilisé par les applications et les bibliothèques (y compris Flurl) pour encoder des données pour les requêtes d'URL et les organismes de demande de code URL. Les deux Xamarin et RestSharp Portable ont traité ceci donc je suis sûr qu'un work-around est possible et je pourrais considérer ceci dans Flurl si vous voulez create an issue. Cependant, gardez à l'esprit que les données binaires d'encodage d'URL comme les images sont très inhabituelles, et il existe good reasons pour l'éviter si possible. Bien sûr, s'il s'agit d'une API tierce avec laquelle vous travaillez, vous n'avez pas vraiment le choix. Mais si vous avez le contrôle du code côté serveur, je suggère de refactoriser cela pour accepter multipart/form-data à la place.