1

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

1 回答 1

1

这种限制虽然有点武断,但在 Microsoft 的Uri.EscapeDataString方法中是有意设计的,应用程序和库(包括 Flurl)通常使用该方法对 URL 查询和 URL 编码的请求主体的数据进行编码。Xamarin和RestSharp Portable都处理了这个问题,所以我确信可以解决这个问题,如果你想创建问题,我可能会在 Flurl 中考虑这个问题

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

于 2016-05-17T15:08:55.950 回答