Web services Sharepoint 2007 Web服务错误
我正在尝试通过iOS HTTP调用访问Sharepoint 2007 web服务。通信协议是SOAP(1和1.2)。我能够成功地执行GetList和GetListAndView。但是,当我尝试GetListItems时,我会收到任意数量的错误消息,这些消息都没有任何意义 GetListItems的SOAP调用格式(本例中为1.2;但1.0存在相同的问题)如下:Web services Sharepoint 2007 Web服务错误,web-services,soap,sharepoint-2007,Web Services,Soap,Sharepoint 2007,我正在尝试通过iOS HTTP调用访问Sharepoint 2007 web服务。通信协议是SOAP(1和1.2)。我能够成功地执行GetList和GetListAndView。但是,当我尝试GetListItems时,我会收到任意数量的错误消息,这些消息都没有任何意义 GetListItems的SOAP调用格式(本例中为1.2;但1.0存在相同的问题)如下: <?xml version="1.0" encoding="utf-8"?> <soap12:Envelope xml
<?xml version="1.0" encoding="utf-8"?>
<soap12:Envelope xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:soap12="http://www.w3.org/2003/05/soap-envelope">
<soap12:Body>
<GetListItems xmlns="http://schemas.microsoft.com/sharepoint/soap/">
<listName>TaskListSample2-0</listName>
<viewName>{13C5392C-7DBC-4803-A3B8-B377D8566A55}</viewName>
<query><Query><Where><Or><Eq><FieldRef Name="Title"></FieldRef><Value Type="Text">Test</Value></Eq><IsNotNull><FieldRef Name="Title"></FieldRef></IsNotNull></Or></Where></Query></query>
<viewFields><ViewFields><FieldRef Name="Title" /><FieldRef Name="Status" /></ViewFields></viewFields>
<rowLimit>100</rowLimit>
<queryOptions></queryOptions>
<webID>c069106a-8d18-43d6-81c2-2687f568a3c5</webID>
</GetListItems>
</soap12:Body>
</soap12:Envelope>
TaskListSample2-0
{13C5392C-7DBC-4803-A3B8-B377D8566A55}
试验
100
c069106a-8d18-43d6-81c2-2687f568a3c5
…
之间内容的结构与成功调用此函数的.Net中的格式完全相同
我收到以下错误消息:
<?xml version="1.0" encoding="UTF-8"?>
<soap:Envelope xmlns:soap="http://www.w3.org/2003/05/soap-envelope" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
<soap:Body>
<soap:Fault>
<soap:Code>
<soap:Value>soap:Receiver</soap:Value>
</soap:Code>
<soap:Reason>
<soap:Text xml:lang="en">Exception of type 'Microsoft.SharePoint.SoapServer.SoapServerException' was thrown.</soap:Text>
</soap:Reason>
<detail>
<errorstring xmlns="http://schemas.microsoft.com/sharepoint/soap/">Root element is missing.</errorstring>
</detail>
</soap:Fault>
</soap:Body>
</soap:Envelope>
肥皂:接收器
引发了类型为“Microsoft.SharePoint.SoapServer.SoapServerException”的异常。
缺少根元素。
我和其他几个精通.Net和Sharepoint的程序员在这方面花了几天时间。根据对查询的各种编辑更改,我们还看到查询中的“元素query
丢失或无效”
顺便说一句,我还尝试通过Windows框上的Fiddler2进行所有这些SOAP调用。我看到的结果与iOS HTTP调用的结果完全相同
我能得到的最接近的答案是查询的格式不正确(duh)。但就我的一生而言,正确的格式正在逃避我们。我们已经能够从本机.Net应用程序成功地查询服务器,但将查询XML的确切内容和格式复制到iOS代码中不会改变任何内容
不用说,微软的文档和错误消息在刑事上毫无用处。不,我们不能搬到莫斯2010。客户端将不会很快更新,因此我们必须使用他们现有的技术
任何帮助都将不胜感激。即使有人能够明确地证明,在2007年,特定的web服务功能已被破坏。虽然这会很糟糕,但至少我们会知道我们并不完全愚蠢。但是,如果有人能发现我实际上在格式化错误的查询,并告诉我如何修复它,那将是令人惊讶的
谢谢。我在iOS上使用SOAP查询取得了一些成功。它确实有一个很好的学习曲线。我应该指出,我不是SP专家,所以我无法解释为什么你的不起作用。这是大量谷歌搜索和()的结果。 下面是我执行
GetListItems
时的原始XML:
<?xml version="1.0" encoding="utf-8"?>
<soap:Envelope xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/">
<soap:Body>
<GetListItems xmlns="http://schemas.microsoft.com/sharepoint/soap/">
<listName>Notes</listName>
<query>
<Query>
<Where>
<Or>
<Eq>
<FieldRef Name="Title"></FieldRef>
<Value Type="Text">Chris Test</Value>
</Eq>
<Eq>
<FieldRef Name="Folder"></FieldRef>
<Value Type="Text">Ungrouped</Value>
</Eq>
</Or>
</Where>
</Query>
</query>
<rowLimit>0</rowLimit>
<queryOptions>
<QueryOptions xmlns:ns2="http://schemas.microsoft.com/sharepoint/soap/" xmlns="">
<IncludeMandatoryColumns>FALSE</IncludeMandatoryColumns>
<ViewAttributes Scope="Recursive" />
</QueryOptions>
</queryOptions>
</GetListItems>
</soap:Body>
</soap:Envelope>
笔记
克里斯测验
未分组
0
错误的
从一个名为notes的自定义列表中,这将给出标题==christest或文件夹=='ungroup'的所有条目
编辑,我看到你有一个IsNotNull属性,我是这样做的:(为了简洁起见进行了修剪)
未分组
我知道这个问题已经问了一年多了,但我猜你错过了一个答案
<QueryOptions />
元素中的元素
<queryOptions></queryOptions>
节点。希望这至少对某人有帮助:)
<queryOptions></queryOptions>