如何绕过WebClient.DownloadString()中的“太长”错误?
问题描述:
我试图从一个API下载请求,它要求我在URL中包含PDF的Base64字符串。我使用WebClient.DownloadString()方法,它给了我一个System.IO.PathTooLongException。如何绕过WebClient.DownloadString()中的“太长”错误?
我知道URI(〜60k)中的字符数有限制,而且我的URI有几千个以上的字符,所以我不认为设置基本URL或任何东西都会有所帮助。有什么方法绕过URI字符限制吗?
答
我认为由于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
为什么你逝去的URL作为URI作为它的构造也被超负荷它接受字符串。 。 –
我只是传递一个字符串url到方法 – hsbsid