【问题标题】:How can I bypass the "Too Long" error from WebClient.DownloadString()?如何绕过 WebClient.DownloadString() 中的“太长”错误?
【发布时间】:2017-09-16 15:24:14
【问题描述】:

我正在尝试从 API 发出下载请求,该请求要求我在 URL 中包含 PDF 的 Base64 字符串。我正在使用 WebClient.DownloadString() 方法,它给了我一个 System.IO.PathTooLongException。

我知道 URI 中的字符有限制(约 60k),而且我的 URI 比这多几千,所以我认为设置基本 url 或任何东西都没有帮助。有没有办法绕过 URI 字符限制?

【问题讨论】:

  • 为什么你将 url 作为 URI 传递,因为它的构造函数被重载,它也接受 string 。 .
  • 我只是将字符串 url 传递给方法

标签: c# pdf base64 uri


【解决方案1】:

我假设 System.IO.PathTooLongException 是由于 HTTP 414 错误而被 WebClient 抛出的?如果是这种情况,服务器不允许该长度的获取请求。

您确定必须将 pdf 数据添加为 GET 参数吗? 尝试像这样发布数据:

using (WebClient wc = new WebClient())
{
    var nvc = new NameValueCollection();
    nvc.Add("pdf-parameter", "encoded-pdf-here");
    // UploadValues uses 'POST' by default
    var data = wc.UploadValues(url, nvc);
    // Adjust result encoding if required...
    var result = Encoding.UTF8.GetString(data);
}

【讨论】:

猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-08-09
相关资源
最近更新 更多