NTYSRV 使用指南

POST 方法调用动态链接库

此页面介绍了高级功能,需要具有一定的计算机编程知识。

为了丰富网站的功能,服务器可能需要处理 POST 方法提交的数据。NTYSRV 通过调用具有正确格式的 DLL 动态链接库来实现浏览器与后台交互。目前 POST 请求最大允许长度 64 MB。

此处假设 NTYSRV 服务器安装于 D:\NTYSRV,需要调用的 DLL 文件位于 D:\NTYSRV\DLL\Upload.dll,网站根目录位于 D:\NTYSRV\Public

动态链接库(DLL)数据结构 注册动态链接库


动态链接库(DLL)数据结构

以下为动态链接库(DLL)文件内部的数据结构,其中参数名可任意更改。所有参数和类型均需设置正确,否则可能导致服务器出错。

子程序名返回值类型备 注
UploadFile文本型D:\NTYSRV\Tmp\4ca7c9c.tmp // 存放着类似于响应的临时文件名1
参数名类 型备 注
Dll文件名文本型D:\NTYSRV\DLL\Upload.dll // 该 DLL 的文件名路径
总服务器运行目录文本型D:\NTYSRV // 服务器系统目录
网站根目录文本型D:\NTYSRV\Public // 网站根目录
URL文本型/Uploads/ // HTTP 请求中 POST 之后的请求路径,不包含 ? 及之后的参数。
IP文本型127.0.0.1 // 不包含端口号的连接客户端时的IP。IP
请求头参数名文本型.. // HTTP 请求中的请求参数名,使用两个换行符分隔。与“请求头参数值”数量相同。2
请求头参数值文本型.. // HTTP 请求中的请求参数值,使用两个换行符分隔。同一个参数名中的参数值使用一个换行符分隔。2
Items文本型name-Name|?|name-Pswd|?|name-Address|?|name-File|?|filename-File|?| // POST 数据参数名,用“|?|”分隔。
Values文本型D:\NTYSRV\Tmp\4ca7c97.tmp|?|D:\NTYSRV\Tmp\4ca7c98.tmp|?|D:\NTYSRV\Tmp\4ca7c99.tmp|?|D:\NTYSRV\Tmp\4ca7c9a.tmp|?|D:\NTYSRV\Tmp\4ca7c9b.tmp|?| // POST 参数名对应的数据内容,保存于临时文件中,用“|?|”分隔。

注释:

1. 返回值中,类似于响应的数据格式为见下方。其中带有 下划线 的为可变值。

响应代码 / HTTP/1.1[换行符]
响应名: 响应值[换行符]
...
[换行符]
[换行符]

响应代码 中需要使用空格,请使用 下划线 替代,如 200_OK

2. 以下为请求头参数名与参数值格式范例,可供参考:

行号请求头参数名行号请求头参数值
1Content-Type1text/html
22
3Set-Cookie3Cookie1
4Cookie2
5Cookie3
46
5Expires7GMT Time

IP. 此项为 2.2.5.0 及之后版本客户端的新参数,不兼容旧版。从旧版升级到新版时,请重新编译相关 DLL,在 URL 参数后方插入 IP 参数。


注册动态链接库

以下为 RunDll.xml 的数据结构,用来注册目标动态链接库以使 NTYSRV 关联。注意此文件需要复制到“Pool”文件夹下的相应服务器文件夹中才有效。

<Main>
<Post>DLL1?</Post> <!-- 指定生效的 POST 项目名,用“?”分隔 -->
<list>
<DLL1> <!-- POST 项目名 -->
<Url>/Uploads/</Url> <!-- 触发 DLL 调用的URL -->
<Link>Upload.dll</Link> <!-- 目标 DLL 文件名,位于服务器系统目录的“DLL”文件夹中 -->
<Name>Upload</Name> <!-- 目标 DLL 文件内部的命令名 -->
</DLL1>
</list>
</Main>

若 DLL 内部未指定 Expires 值,则不返回此字段。Global.ini 中的文档有效期设置对此无效。

设置完成后,重启对应的服务器程序以生效。若设置有误,访问时将返回 500 Internal Server Error 响应。

NaTyphoon© NTYSRV