测试Web请求处理程序
中的测试界面生产服务器编译器应用程序测试web请求处理程序部署到MATLAB®生产服务器™.web请求处理程序由MATLAB函数和指定URL路由的JSON文件组成。要为web请求处理程序设置测试接口,需要配置对路由JSON文件的访问。
要配置对路由文件的访问,可以设置一个环境变量来指定路由文件的路径,或者将路由文件放在MATLAB首选项目录中。当您启动测试接口时,它首先为路由文件搜索环境变量。如果没有设置环境变量,则测试接口将在MATLAB首选项目录中搜索路由文件。在配置对路由文件的访问后,可以测试MATLAB函数的web请求处理程序。有关web请求处理程序的更多信息,请参见处理HTTP请求中的自定义路由和有效负载(MATLAB Production Server).
设置路由文件的环境变量
设置环境变量PRODSERVER_ROUTES_FILE
到包含路由文件路径的值。您可以在MATLAB提示符下使用设置环境变量setenv
或者在系统命令提示符处使用特定于您的操作系统的语法。
setenv (“PRODSERVER_ROUTES_FILE”,的路径/ /线路/文件/ routes.json”);
的测试服务器中启动测试服务器之前,如果指定路由文件的相对路径,则从MATLAB提示符导航到包含路由文件的文件夹生产服务器编译器应用程序。
如果您更新了已经在使用的路由文件的内容或位置,要使您的更改生效,请在生产服务器编译器应用程序。
若要关闭web请求处理程序的测试,请设置
PRODSERVER_ROUTES_FILE
转换为空值。
使用MATLAB路由文件的首选项文件夹
配置对路由文件的访问的另一个选项是将该文件复制到MATLAB首选项文件夹。这个配置在MATLAB重新启动时仍然存在。必须为路由文件命名prodserver_routes.json
.要找到您的首选项文件夹,请键入prefdir
在MATLAB提示符下。
如果您更新了已经在使用的路由文件的内容或位置,要使您的更改生效,请在生产服务器编译器应用程序。
要关闭web请求处理程序的测试,请重命名或移动
prodserver_routes.json
从首选项文件夹。
测试Web请求处理程序的端到端设置
创建路由文件
使用文本编辑器,创建一个路由JSON文件,将客户端请求映射到MATLAB web请求处理程序函数。将文件另存为routes.json
.
下面的路由文件映射包含的任何客户机请求MyDemo
的请求URLhellowh
MATLAB函数在whdemo
可部署的档案。
{“版本”:“1.0.0”、“路径映射”:[{“匹配”:“^ / MyDemo /。*”、“webhandler”:{“组件”:“whdemo”、“功能”:“hellowh}}]} |
配置访问路由文件
从MATLAB提示符中,设置环境变量PRODSERVER_ROUTES_FILE
指定路由文件的路径。
setenv (“PRODSERVER_ROUTES_FILE”,“J: \ routes.json”);
写MATLABWeb请求处理程序的函数
要作为web请求处理程序工作,MATLAB函数必须接受一个标量结构数组的输入参数,并返回一个标量结构数组的输出参数。
下面的代码显示了一个MATLAB函数,hellowh.m
,它使用输入参数结构请求
,其字段提供关于请求头和请求体的信息。该函数还构造并返回结构响应
,其字段包含成功HTTP代码和状态消息、自定义报头和消息体。
函数Response = hellow (request) disp(request);disp (的请求。标题:“);disp (request.Headers);bodyText = char(request.Body);disp (的请求。身体:“);如果长度(bodyText) > 100 disp(bodyText(1:100));disp (“……”);其他的disp (bodyText);结束Response = struct(“ApiVersion”, [1 0 0],...“HttpCode”, 200,...“HttpMessage”,“好吧”,...“头”{{...“服务器”“WebFunctionTest / 1”;...“X-MyHeader”“foobar”;...“X-Request-Body-Len”sprintf (' % d '长度(request.Body));...“内容类型”“文本/普通”;...}},...“身体”uint8 (“你好,世界”));disp(响应);disp (的反应。标题:“);disp (response.Headers);结束
准备测试
打开生产服务器编译器在MATLAB命令提示符下输入以下命令:
productionServerCompiler
在类型部分,选择可部署档案(.ctf).
指定要部署的MATLAB函数。
在导出功能部分,单击加号按钮。
使用文件资源管理器,找到并选择
hellowh.m
文件。
点击测试客户端.应用程序切换到测试选项卡。
点击开始开始你的测试。的服务器日志节显示错误(如果有的话)。
调用Web处理程序MATLAB函数
使用您选择的客户机来调用部署的函数。
下面的命令使用cURL从系统命令行调用部署的函数。
curl -v http://localhost:9910/MyDemo/this/could/be/any/path?param=YES
在系统命令行显示如下信息:
*尝试::1…* TCP_NODELAY set *连接到localhost(::1)端口9910 (#0)> GET /MyDemo/this/could/be/any/path?param=YES HTTP/1.1 > Host: localhost:9910 > User-Agent: curl/7.55.1 > Accept: */* > < HTTP/1.1 200 OK < Server: WebFunctionTest/1 < X-MyHeader: foobar < X-Request-Body-Len: 0 < Content-Type: text/plain < Content-Length: 12 < Connection: Keep-Alive < hello, world*连接#0到主机localhost未受影响
检查数据
切换回生产服务器编译器应用程序。
在测试界面中,在MATLAB执行请求,在应用程序中单击完成的消息,查看客户端与MATLAB之间交换的值。
点击输入来查看传递到MATLAB中的数据。
点击输出查看返回给客户端的数据。
在您对测试满意之后,您可以打包MATLAB函数并将其部署到服务器上。有关更多信息,请参见为MATLAB生产服务器创建可部署存档.
相关的话题
- 处理HTTP请求中的自定义路由和有效负载(MATLAB Production Server)
- 用MATLAB测试客户端数据集成