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

问题描述:

我试图从一个API下载请求,它要求我在URL中包含PDF的Base64字符串。我使用WebClient.DownloadString()方法,它给了我一个System.IO.PathTooLongException。如何绕过WebClient.DownloadString()中的“太长”错误?

我知道URI(〜60k)中的字符数有限制,而且我的URI有几千个以上的字符,所以我不认为设置基本URL或任何东西都会有所帮助。有什么方法绕过URI字符限制吗?

+0

为什么你逝去的URL作为URI作为它的构造也被超负荷它接受字符串。 。 –

+0

我只是传递一个字符串url到方法 – hsbsid

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

您确定需要将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); 
} 
+0

我试着用这个问题的答案中的方法:https://*.com/questions/4088625/net-simplest-way-to-send-post-with数据和读取响应,它的工作原理是完美的。感谢您的建议。 – hsbsid