首页 > 解决方案 > Matlab RESTful PUT 命令 - net.http - 嵌套主体值

问题描述

我正在使用 Matlab 的 matlab.net.http 库来启动获取、放置和发布命令到网站。我可以成功启动 get 和 post 命令。

例如: MyBody = matlab.net.http.MessageBody(struct('Id',YYYYYY,'WindfarmId',XXX,'Month','YYYY-MM-DD')); Request = matlab.net.http.RequestMessage; Request.Method = 'POST'; Request.Header = matlab.net.http.HeaderField('Content-Type','application/json','Authorization',['Basic ' matlab.net.base64encode([Username ':' Password])]); Request.Body = MyBody; uri = matlab.net.URI(ENTERURLHERE); Response = Request.send(uri,MyHTTPOptions); 这很好用。但是,使用 PUT 命令我必须输入此主体的等效项(以 curl 语法编写):

-d '{ "InputValues": [ {"MetricLevelAId": 1, "MetricLevelBId": 1, "InputMetricId": 7, "Value": 56 } ] }'

我试过这个:

data_InputValues = struct ('MetricLevelAId',1,'MetricLevelBId',1,'InputMetricId',7,'Value',56);
MyBody = matlab.net.http.MessageBody(struct('InputValues',dataInputValues));

但是,我不断收到来自服务器的以下“错误请求”响应:“需要输入值”

我认为这与 Matlab 解释请求正文部分并将其传递给服务器的方式有关,即它无法正确传递嵌套结构。任何人有任何想法如何解决这个问题?

NB 可能与将curl 转换为 Matlab/Webwrite相关联(它正在处理嵌套值)

标签: matlabrestful-url

解决方案


推荐阅读