使用Flurl发布图像base64

时间:2016-05-17 09:21:12

标签: c# .net xamarin.forms flurl

我试图使用Flurl发布简单请求。但是有一个例外,因为takenPicture字符串太大了。有没有办法使用Flurl发布大字符串?

  

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 个答案:

答案 0 :(得分:1)

这个限制虽然有点随意,但是by design in Microsoft's Uri.EscapeDataString method,应用程序和库(包括Flurl)常用它来编码URL查询和URL编码请求主体的数据。 XamarinRestSharp Portable都处理了这个问题,所以我确信可以解决这个问题,如果你想create an issue,我可以在Flurl中考虑这个问题。

但是,请记住,像图像这样的二进制数据的URL编码非常不寻常,如果可能的话,有good reasons可以避免它。当然,如果这是您正在使用的第三方API,那么您没有太多选择。但是,如果您可以控制服务器端代码,我建议您重构一下以接受multipart/form-data