本课的目标是设置运行 Web 服务的 SQL Anywhere Web 服务器。
前提条件
本课假定您拥有在教程教程:创建一个 Web 服务器并从 Web 客户端访问此 Web 服务器开头的特权部分中列出的角色和特权。
创建将用于包含 Web 服务定义的 SQL Anywhere 数据库。
dbinit -dba DBA,sql echo |
使用此数据库启动网络数据库服务器。此服务器将充当 Web 服务器。
dbsrv16 -xs http(port=8082) -n echo echo.db |
将 HTTP Web 服务器设置为监听端口 8082 上的请求。如果网络禁用了 8082 端口,则使用其它端口号。
使用 Interactive SQL 连接到数据库服务器。
dbisql -c "UID=DBA;PWD=sql;SERVER=echo" |
创建新的 Web 服务来接受进来的请求。
CREATE SERVICE EchoService TYPE 'RAW' AUTHORIZATION OFF SECURE OFF USER DBA AS CALL Echo(); |
上述语句创建一个名为 EchoService 的新服务,该服务将在 Web 客户端向其发送请求时调用一个名为 Echo 的存储过程。它会为 Web 客户端生成没有任何格式设置 (RAW) 的 HTTP 响应正文。如果使用其他用户 ID 登录,则必须对 USER DBA 子句进行更改以反映您的用户 ID。
创建 Echo 过程以处理进来的请求。
CREATE OR REPLACE PROCEDURE Echo() BEGIN DECLARE request_body LONG VARCHAR; DECLARE request_mimetype LONG VARCHAR; SET request_mimetype = http_header( 'Content-Type' ); SET request_body = isnull( http_variable('text'), http_variable('body') ); IF request_body IS NULL THEN CALL sa_set_http_header('Content-Type', 'text/plain' ); SELECT 'failed' ELSE CALL sa_set_http_header('Content-Type', request_mimetype ); SELECT request_body; END IF; END |
此过程将为发送到 Web 客户端的响应的 Content-Type 标头和正文设置格式。
![]() |
使用DocCommentXchange讨论此页。
|
版权 © 2013, SAP 股份公司或其关联公司. - SAP Sybase SQL Anywhere 16.0 |