方法语法

上次修改时间: 2015年3月9日

适用范围: SharePoint Foundation 2010

本文内容
将方法嵌入到 URL 中
使用 CAML 批处理功能发送多个请求
用于 Microsoft FrontPage Server Extensions 的 POST 命令的语法
POST 命令的格式
对 POST 命令的响应的格式

下列每个方法主题均包括描述方法调用的常规格式的语法部分。有关如何设置发布中方法的格式的指导,请参阅本主题后面的"POST 命令的格式"。

有两种方法可发布使用 Microsoft SharePoint Foundation 的远程过程调用 (RPC) 协议的命令。您可通过将命令嵌入到 URL 中来发布单个命令,也可以使用协作应用程序标记语言 (CAML) 的批处理功能来对每个事务发送多个请求。

将方法嵌入到 URL 中

通过将请求嵌入到 URL 中,您可以将方法和所需参数发出到运行 SharePoint Foundation 的服务器。语法如下所示:

http://[site_name]/_vti_bin/owssvr.dll?Cmd=Method_name[&Parameter1=Value1&Parameter2=Value2...]

有关详细信息,请参阅 URL 协议

使用 CAML 批处理功能发送多个请求

使用一个 POST 发出一个命令需要很多代价高昂的服务器往返。若要减少往返数量,请使用 CAML Batch 元素来对每个 HTTP 请求发出多个命令。所有请求均必须包括一个顶级 DisplayPost 命令。针对 SharePoint Foundation 的所有方法请求的 POST URL 的语法如下所示:

POST /[Path]/[Subsite]/_vti_bin/owssvr.dll?Cmd=DisplayPost

备注

当未通过代理发出请求时,您必须直接发布到资源的相对于服务器的 URL。主机名不是相对于服务器的 URL 的一部分。

用于在 SharePoint Foundation 中发出多个请求的语法如下所示:

POST /[Path/][Subweb/]_vti_bin/_vti_aut/owssvr.dll?Cmd=DisplayPost
<?xml version="1.0" encoding="UTF-8"?>
<ows:Batch OnError="Return">
  <Method ID="String">
    <SetVar Name="Cmd">Method1_name</SetVar>
    <SetVar Name="Parameter1">Value1</SetVar>
      .
      .
      .
    <SetVar Name="ParameterN">ValueN</SetVar>
  </Method>
  <Method ID="String">
    <SetVar Name="Cmd">Method2_name</SetVar>
    <SetVar Name="Parameter1">Value1</SetVar>
      .
      .
      .
    <SetVar Name="ParameterN">ValueN</SetVar>
  </Method>
      .
      .
      .
  <Method ID="String">
    <SetVar Name="Cmd">MethodN_name</SetVar>
    <SetVar Name="Parameter1">Value1</SetVar>
      .
      .
      .
    <SetVar Name="ParameterN">ValueN</SetVar>
  </Method>
</ows:Batch>

在下面的示例中,Batch 元素用于创建名为"Meeting Topics"和"Volunteers"的两个自定义列表。

POST /STSServer1/_vti_bin/_vti_aut/owssvr.dll?Cmd=DisplayPost

<?xml version="1.0" encoding="UTF-8"?>
<ows:Batch OnError="Return"> 
  <Method ID="0,NewList"> 
    <SetVar Name="Cmd">NewList</SetVar> 
    <SetVar Name="ListTemplate">100</SetVar> 
    <SetVar Name="Title">Meeting Topics</SetVar> 
  </Method>
  <Method ID="1,NewList"> 
    <SetVar Name="Cmd">NewList</SetVar> 
    <SetVar Name="ListTemplate">100</SetVar> 
    <SetVar Name="Title">Volunteers</SetVar> 
  </Method> 
</ows:Batch>

用于 Microsoft FrontPage Server Extensions 的 POST 命令的语法

每种方法均由方法名称及其后的冒号 (:) 和空格组成。紧接着是 FrontPage Server Extensions 的 server_extension_version,然后是该方法的参数。每个参数名称的第一个符号是 & 号,而参数名称后紧跟一个等于号 (=)(等于号前没有空格)。该等于号后紧跟参数的值。例如:

&service_name=/fodo4

参数值使用以下约定:

字体/代码

含义

示例

斜体

变量

service_name

尖括号 (< >)

可选内容

<platform=os>

纯文本

文本

method

分离符号 (|)

分隔同等的可选选项

(true | false)

有关参数的信息,请参阅特定方法参考页的参数部分。

用于 FrontPage Server Extensions 的 RPC 协议中的大多数 POST 命令都采用以下格式:

POST /directory_name/_vti_bin/_vti_aut/program_name.dll.
HTTP/1.0..Date:.Thu,.03.Dec.1998.19:09:16.GMT..

在上面的示例中,directory_name 是网站根目录的名称,而 program_name 是向其发送 POST 命令的 FrontPage Server Extensions 中的程序名称。

日期字符串后跟 HTTP 标头行,如下一个示例中所示:

MIME-Version:.1.0..User-Agent:.client_name/version..
Host:.host_name..Accept:.auth/sicily..
Authorization:.Basic.cm9iZjpUS3NvKjUw.
Content-Length:.64..
Content-Type:.application/x-www-form-urlencoded
X-Vermeer-Content-Type:.application/x-www-form-urlencoded
.
.
.

这些行标识负责 POST 命令、POST 命令的长度和类型以及安全信息的客户端应用程序。必须指定 X-Vermeer-Content-Type 标头(如示例中所示)。创建使用 RPC 方法与 SharePoint Foundation 进行交互的应用程序的第三方开发人员必须在其 POST 中包括此标头。如果不包括此标头,则 RPC 操作将失败。

POST 命令的最后一部分包含带有任何所选参数及其值的方法。例如:

method=open+service%3a4%2e0%2e1%2e2207&service%5fname=%2fallnew.

POST 命令的格式

POST 命令的第一行包含 POST 命令及正在使用的 HTTP 版本。POST 命令后跟几个 HTTP 标头,其中有些标头是标准的,而有些标头是 FrontPage Server Extensions 所特有的。一个典型的 POST 命令如下所示:

POST /allnew/_vti_bin/_vti_aut/author.dll HTTP/1.0CRLF
Date: Thu, 03 Dec 1998 19:09:16 GMTCRLF
MIME-Version: 1.0CRLF
User-Agent: MSFrontPage/4.0CRLF
Host: seattleCRLF
Accept: auth/sicilyCRLF
Authorization: Basic cm9iZjpUS3NvKjUwCRLF
Content-Length: 343CRLF
Content-Type: application/x-www-form-urlencodedCRLF
X-Vermeer-Content-Type: application/x-www-form-urlencodedCRLF
CRLF
method=list+documents%3a4%2e0%2e1%2e2207&service%5fname=%2fallnew
&listHiddenDocs=false&listExplorerDocs=false&listRecurse=false&listFiles=true
&listFolders=true&listLinkInfo=true&listIncludeParent=true&listDerived=false
&listBorders=false&listChildWebs=true&initialUrl=&platform=WinI386
&folderList=%5b%3bTW%7c09+Nov+1998+17%3a03%3a25+%2d0000%5dLF

每个标头行和 POST 命令行必须以一个回车符/换行符 (CRLF) 结尾。请注意,依照 HTTP 协议,CRLF 为字节序列 0x0d、0x0a。

备注

有关 POST 命令和 HTTP 标头的详细信息,请参阅万维网联合会网页上的 HTTP 1.0 规范。此规范由 RPC 协议使用。

标头的后面是 CRLF,后跟要发送到 FrontPage Server Extensions 的 RPC 协议方法。将方法中的空格编码为加号 (+) 字符。使用 %XX 编码对方法中的非字母数字字符进行编码(例如,反斜杠被编码为 %5c)。在方法数据的末尾添加一个换行符 (LF)。

对 POST 命令的响应的格式

当客户端应用程序使用 POST 命令将某个方法发送到 FrontPage Server Extensions 时,FrontPage Server Extensions 会发回一个标准的 HTTP OK,以确认收到该方法。FrontPage Server Extensions 通过将一个 HTML 编码页发送到客户端应用程序来响应该方法。下面的示例演示一个典型的响应:

Content-type: application/x-vermeer-rpc..X-FrontPage-User-Name:
usernameCRLF
CRLF
<html><head><title>vermeer.RPC 
packet</title></head>LF<body>.
LF<p>method=list documents: 
6.0.x.xxxxLF<p>document_list=
LF<ul>
LF<ul>LF<li>document_name=Default.htm
LF<li>meta_info=
LF<ul>
LF<li>vti_author
LF<li>SR|author
LF<li>vti_title
LF<li>SW|Home Page
LF<li>vti_timecreated
LF<li>TR|10 Sep 1998 10:07:54 -0700
LF<li>vti_filesize
LF<li>IX|277
LF<li>vti_modifiedby
LF<li>SR|author
LF<li>vti_nexttolasttimemodified
LF<li>TR|10 Sep 1998 10:07:54 -0700
LF<li>vti_timelastmodified
LF<li>TR|10 Sep 1998 10:07:55 -0700
LF<li>vti_timelastwritten
LF<li>TX|10 Sep 1998 10:07:56 -0700
LF</ul>
LF</ul>
LF<ul>
LF<li>document_name=new1.htm
LF<li>meta_info=
LF<ul>
LF<li>vti_author
LF<li>SR|IUSR_author
. 
. 
.
</body>
</html>

有三种可能的响应变体。第一种,该响应为仅包括一条关于方法成功或失败的消息的 HTML 页。第二种,该响应为仅包括关于方法对象元信息的 HTML 页。第三种,该响应同时包括一条消息和元信息。

在所有变体中,该响应均以 Content_type 标头开头。随后的 HTML 页在以下每个 HTML 标记前必须具有一个换行符 (LF):<p>、<li>、<ul> 和 </ul>。

有关如何记录响应的信息,请参阅返回值