过去几周我一直面临的一个问题是尝试在 SharePoint 中搜索列表项值,但不断收到错误的请求错误。我有两个符号导致问题,一个是我无法搜索带有 anh & 符号的内容,另一个是/(正斜杠)。
我的代码如下:
ServiceContext context = new ServiceContext(new Uri("http://URL/_vti_bin/listdata.svc"));
context.Credentials = CredentialCache.DefaultCredentials;
var requestType = (System.Data.Services.Client.DataServiceQuery<ListTypeValue>)context.ListType
.Where(v => v.Value.Equals(search));
搜索互联网后,除了说更改 IIS 设置或将其转换为 ASCII Html 值(注意:将 & 转换为 %27 仍然会导致错误的请求错误)之外,没有返回任何有效信息。
最佳答案
我真的不建议使用 StartsWith 和 Length 的组合 - 在这种情况下性能可能会成为一个真正的问题。假设您需要一个字符串键,并且您希望您的键能够包含特殊字符,Peter Qiu 已在博客中介绍了我们可以提供的最佳建议。 (此行为实际上来自 IIS 和 .NET 堆栈的组合。)
查看http://blogs.msdn.com/b/peter_qian/archive/2010/05/25/using-wcf-data-service-with-restricted-characrters-as-keys.aspx有关更多详细信息,但您的问题应该通过关闭 ASP.NET 请求过滤来解决。请注意,这存在不小的安全风险。 Peter 指出了其中的一些,像 asafaweb.com 这样的安全过滤工具会提示这个解决方案。
长话短说:如果您可以使用整数或避免 key 中的受限制字符,您的 Web 应用程序将会更加安全。
关于c# - URL Sharepoint Rest 查询中的保留符号(&、/等) - 错误请求,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12571572/