WebClient.DownloadData() 方法莫名其妙的报错

youzelin 2017-03-14 01:53:21
之前都好好的,现在莫名其妙的报错了!
报的错误是:For security reasons DTD is prohibited in this XML document. To enable DTD processing set the DtdProcessing property on XmlReaderSettings to Parse and pass the settings into XmlReader.Create method.
中文意思是:出于安全原因,在此XML文档中禁止使用DTD。 要启用DTD处理,请将XmlReaderSettings上的DtdProcessing属性设置为解析并将设置传递到XmlReader.Create方法。

网上搜索了 N 久,全是关于 XmlReaderSettings 怎么怎么设置。但是我只是一句简单的 download 而已,没有什么 XmlReaderSettings!我 download 的URL 是 office 365 的 SharePoint。


private static byte[] DownloadAttachment(WebClient client, string uri)
{
return client.DownloadData(uri);
}

WebClient 做过一些属性设置,大致是这样:

webClient.Credentials = GlobalData.SharePointOnlineCredentials;
webClient.Headers.Add("X-FORMS_BASED_AUTH_ACCEPTED", "f");

SharePointOnlineCredentials 就是一个同名的用账户名和密码构建的 SharePointOnlineCredentials 对象。

请问这个问题如何解决?郁闷,凌晨 发帖,请大伙帮忙!谢谢!
...全文
400 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
Poopaye 2017-03-15
  • 打赏
  • 举报
回复
明显不是异常,怎么看都是服务器返回就是这样的
youzelin 2017-03-15
  • 打赏
  • 举报
回复
引用 3 楼 starfd 的回复:
那你试着改成WebRequest的方式获取Response,然后获取Stream转化为byte[]看行不行 感觉应该不是这个的问题,而是后面对这个byte处理上的问题 至于以前没问题,现在有问题,估计是人家调整过了响应
不知道啥情况,现在下载莫名其妙的可以了,上传不行,就报那种 414 的错误。 client.UploadData() 就这么一句话。
youzelin 2017-03-15
  • 打赏
  • 举报
回复
引用 2 楼 sp1234 的回复:
服务器端去调试。
没有明白是什么意思,你是说去 SharePoint 所在的服务器调试吗?
youzelin 2017-03-15
  • 打赏
  • 举报
回复
昨天莫名其妙的好了,我也没做什么,见鬼了,我就把 Fiddler 打开,然后清了一下 Session。之前也没用过 Fiddler! 然后现在针对 SharePoint 网站,下载文件是可以,但是上传文件报错。上传文件针对的是 SharePoint 2013。 报的错是 414,说我 URI 长度太长了,我数了一下,128 个字符,也没超长啊。真特么郁闷。上传的权限是肯定有的。也不知道怎么回事。
  • 打赏
  • 举报
回复
那你试着改成WebRequest的方式获取Response,然后获取Stream转化为byte[]看行不行 感觉应该不是这个的问题,而是后面对这个byte处理上的问题 至于以前没问题,现在有问题,估计是人家调整过了响应
  • 打赏
  • 举报
回复
服务器端去调试。
youzelin 2017-03-14
  • 打赏
  • 举报
回复
有人吗?!。。。。。
 假如某网站有个表单,例如(url: http://localhost/login.aspx):帐号密码我们需要在程序中提交数据到这个表单,对于这种表单,我们可以使用 WebClient.UploadData 方法来实现,将所要上传的数据拼成字符即可,程序很简单:

110,538

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧