【问题标题】:Post image base64 using Flurl使用 Flurl 发布图片 base64
【发布时间】:2016-05-17 09:21:11
【问题描述】:

我正在尝试使用 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
});

【问题讨论】:

    标签: c# .net xamarin.forms flurl


    【解决方案1】:

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

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-11-03
      • 2013-12-26
      • 1970-01-01
      • 1970-01-01
      • 2016-05-07
      相关资源
      最近更新 更多