使用 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 | 当发布请求且不在块模式下时自动生成。需要此标头告知服务器主体的内容长度。如果内容长度错误,则连接可能挂起或发生数据丢失。 |
Copyright © 2009, iAnywhere Solutions, Inc. - SQL Anywhere 11.0.1 |