Click here to view and discuss this page in DocCommentXchange. In the future, you will be sent there automatically.

SQL Anywhere 11.0.1 (中文) » SQL Anywhere 服务器 - 编程 » SQL Anywhere 数据访问 API » SQL Anywhere Web 服务 » 创建 Web 服务客户端函数和过程

 

修改 HTTP 标头

使用 CREATE PROCEDURE 语句创建 Web 服务过程时,如果指定了没有冒号 (:) 和值的 HTTP HEADER 名称,HTTP 客户端应用程序将取消该标头。如果包括冒号但未提供值,HTTP 客户端应用程序可包括标头名称,但没有值。例如:

CREATE PROCEDURE suds(...)
TYPE 'SOAP:RPC'
URL '...'
HEADER 'SOAPAction\nDate\nFrom:';

在此示例中,由 SQL Anywhere 自动生成的 Action 和 Date HTTP 标头被取消,From 标头存在但没有值。

修改自动生成的标头可能会导致意外的结果。通常自动生成以下 HTTP 标头,未经认真考虑,请勿修改。

HTTP 标头 说明
Accept-Charset 始终自动生成。如果更改或删除,可能导致意外的数据转换错误。
ASA-Id 始终自动生成。确保客户端未与自身连接(即与同一服务器连接),可能会导致死锁。
Authorization 当 URL 包含证书时自动生成。如果更改或删除,可能导致请求失败。仅支持 BASIC 授权。当通过 HTTPS 进行连接时只应包括用户和口令信息。
Connection Connection:close 始终自动生成。客户端不支持持久连接。不应进行更改,否则连接可能会挂起。
Host 始终自动生成。如果 HTTP/1.1 客户端未提供 Host 标头,则需要 HTTP/1.1 服务器响应 400 错误请求。
Transfer-Encoding 在块模式下发布请求时自动生成。当客户端使用 CHUNK 模式时,删除此标头或删除块值将导致失败。
Content-Length 当发布请求且不在块模式下时自动生成。需要此标头告知服务器主体的内容长度。如果内容长度错误,则连接可能挂起或发生数据丢失。