主要内容

测试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的请求URLhellowhMATLAB函数在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);结束

准备测试

  1. 打开生产服务器编译器在MATLAB命令提示符下输入以下命令:

    productionServerCompiler

  2. 类型部分,选择可部署档案(.ctf)

  3. 指定要部署的MATLAB函数。

    1. 导出功能部分,单击加号按钮。

    2. 使用文件资源管理器,找到并选择hellowh.m文件。

  4. 点击测试客户端.应用程序切换到测试选项卡。

  5. 点击开始开始你的测试。的服务器日志节显示错误(如果有的话)。

调用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未受影响

检查数据

  1. 切换回生产服务器编译器应用程序。

  2. 在测试界面中,在MATLAB执行请求,在应用程序中单击完成的消息,查看客户端与MATLAB之间交换的值。

    生产服务器编译器应用程序测试界面显示输入和输出的web请求处理程序功能。

  3. 点击输入来查看传递到MATLAB中的数据。

  4. 点击输出查看返回给客户端的数据。

在您对测试满意之后,您可以打包MATLAB函数并将其部署到服务器上。有关更多信息,请参见为MATLAB生产服务器创建可部署存档

相关的话题

Baidu
map