Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/bash/17.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Web services Sharepoint 2007 Web服务错误_Web Services_Soap_Sharepoint 2007 - Fatal编程技术网

Web services Sharepoint 2007 Web服务错误

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

我正在尝试通过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 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>