如何绕过WebClient.DownloadString()中的“Too Long”错误?

时间:2017-09-16 15:24:15

标签: c# pdf base64 uri

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

我知道URI中的字符数量有限制(~60k),我的URI比这要多几千,所以我不认为设置基本网址或任何东西会有所帮助。有没有办法绕过URI字符限制?

1 个答案:

答案 0 :(得分:2)

我认为由于HTTP 414错误,WebClient会抛出System.IO.PathTooLongException?如果是这种情况,服务器不允许该长度的get-requests。

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

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);
}