SPHttpClient class

SPHttpClient 用于执行针对 SharePoint 的 REST 调用。 此类负责添加默认标题、管理写入操作所需的摘要,并收集遥测来帮助服务监视应用程序的性能。

注解

此类标记为 @sealed。 子类不应扩展它。

若要与其他 Internet 服务通信,请使用 HttpClient 类。

构造函数

(constructor)(serviceScope)

构造 类的新实例SPHttpClient

属性

configurations

用于 SPHttpClient 类的标准预定义 SPHttpClientConfiguration 对象。

isNavigate
serviceKey

SPHttpClient 的服务键。

方法

_fetch(url, configuration, options)
beginBatch(batchCreationOptions)

启动 ODATA 批处理,允许将多个 REST 查询捆绑到单个 Web 请求。

fetch(url, configuration, options)

执行 REST 服务调用。

get(url, configuration, options)

调用 fetch () ,但将 方法设置为“GET”。

getWebUrlFromRequestUrl(requestUrl)

使用试探法推断用于身份验证的基 URL。

post(url, configuration, options)

调用 fetch () ,但将 方法设置为“POST”。

构造函数详细信息

(constructor)(serviceScope)

构造 类的新实例SPHttpClient

constructor(serviceScope: ServiceScope);

参数

serviceScope
ServiceScope

属性详细信息

configurations

用于 SPHttpClient 类的标准预定义 SPHttpClientConfiguration 对象。

static readonly configurations: ISPHttpClientConfigurations;

属性值

isNavigate

get isNavigate(): boolean;

set isNavigate(isNavigate: boolean);

属性值

boolean

serviceKey

SPHttpClient 的服务键。

static readonly serviceKey: ServiceKey<SPHttpClient>;

属性值

方法详细信息

_fetch(url, configuration, options)

protected _fetch(url: string, configuration: SPHttpClientConfiguration, options: ISPHttpClientOptions): Promise<SPHttpClientResponse>;

参数

url

string

返回

beginBatch(batchCreationOptions)

注意

此 API 以预览状态提供给开发者,可能根据我们收到的反馈更改。 请勿在生产环境中使用此 API。

启动 ODATA 批处理,允许将多个 REST 查询捆绑到单个 Web 请求。

beginBatch(batchCreationOptions?: ISPHttpClientBatchCreationOptions): SPHttpClientBatch;

参数

batchCreationOptions
ISPHttpClientBatchCreationOptions

返回

用于管理批处理操作的 SPHttpClientBatch 对象。

fetch(url, configuration, options)

执行 REST 服务调用。

fetch(url: string, configuration: SPHttpClientConfiguration, options: ISPHttpClientOptions): Promise<SPHttpClientResponse>;

参数

url

string

要获取的 URL

configuration
SPHttpClientConfiguration

确定 SPHttpClient 的默认行为;通常应为 SPHttpClientConfigurations 的最新版本号

options
ISPHttpClientOptions

影响请求的其他选项

返回

行为类似于 WHATWG 提取 () 的承诺。 此承诺将解决 httpClientResponse.ok 为 false (,) 错误状态代码(如 HTTP 404 或 500)。 承诺只会拒绝网络故障或其他阻止与服务器通信的错误。

注解

通常,SPHttpClient.fetch () 的参数和语义与此处所述的 WHATWG API 标准基本相同: https://fetch.spec.whatwg.org/

SPHttpClient 子类添加了一些其他行为,这些行为在使用 SharePoint ODATA API 的 (可以通过使用 HttpClient 而不是) 来避免:

  • 如果未显式指定,将添加默认的“Accept”和“Content-Type”标头。

  • 对于写入操作,会自动添加“X-RequestDigest”标头

  • 请求摘要令牌会自动提取并存储在缓存中,支持预加载

对于写入操作,SPHttpClient 将自动添加“X-RequestDigest”标头,可能需要通过发出单独的请求(如“;”https://example.com/sites/sample/_api/contextinfo")来获取该标头。 通常,可以通过查找保留 URL 段(例如,在传递给提取 () 的原始 URL 中查找“_api”)来猜测相应的 SPWeb URL;如果没有,请使用 ISPHttpClientOptions.webUrl 显式指定它。

get(url, configuration, options)

调用 fetch () ,但将 方法设置为“GET”。

get(url: string, configuration: SPHttpClientConfiguration, options?: ISPHttpClientOptions): Promise<SPHttpClientResponse>;

参数

url

string

要获取的 URL

configuration
SPHttpClientConfiguration

确定 SPHttpClient 的默认行为;通常应为 SPHttpClientConfigurations 的最新版本号

options
ISPHttpClientOptions

影响请求的其他选项

返回

行为类似于 WHATWG 提取 () 的承诺。 此承诺将解决 httpClientResponse.ok 为 false (,) 错误状态代码(如 HTTP 404 或 500)。 承诺只会拒绝网络故障或其他阻止与服务器通信的错误。

getWebUrlFromRequestUrl(requestUrl)

使用试探法推断用于身份验证的基 URL。

static getWebUrlFromRequestUrl(requestUrl: string): string;

参数

requestUrl

string

SharePoint REST 服务的 URL

返回

string

推断出的 SPWeb URL

注解

尝试通过查找“_api”、“_layouts”或“_vit_bin”等常见 SharePoint 路径组件来推断与提供的 REST URL 关联的 SPWeb URL。 这对 X-RequestDigest 和 ODATA 批处理等操作是必要的,它要求发布单独的 REST 终结点,以完成请求。

例如,如果 requestUrl 为“/sites/site/web/_api/service”,则返回的 URL 将为“/sites/site/web”。 或者,如果 requestUrl 为“http://example.com/_layouts/service",则返回的 URL 将为”http://example.com"”。

如果无法确定 URL,则会引发异常。

post(url, configuration, options)

调用 fetch () ,但将 方法设置为“POST”。

post(url: string, configuration: SPHttpClientConfiguration, options: ISPHttpClientOptions): Promise<SPHttpClientResponse>;

参数

url

string

要获取的 URL

configuration
SPHttpClientConfiguration

确定 SPHttpClient 的默认行为;通常应为 SPHttpClientConfigurations 的最新版本号

options
ISPHttpClientOptions

影响请求的其他选项

返回

行为类似于 WHATWG 提取 () 的承诺。 此承诺将解决 httpClientResponse.ok 为 false (,) 错误状态代码(如 HTTP 404 或 500)。 承诺只会拒绝网络故障或其他阻止与服务器通信的错误。