Команда Matlab RESTful PUT - net.http - значения вложенности тела - PullRequest
0 голосов
/ 18 мая 2018

Я использую библиотеку Matlab matlab.net.http для запуска команд get, put и post на веб-сайте.Я могу успешно запустить команды 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));

Однако я продолжаю получать следующее 'Bad Request 'ответ от сервера: «Требуются входные значения»

Я думаю, что это связано с тем, как Matlab интерпретирует часть тела запроса и передает его на сервер, то есть он не может правильно передать вложенную структуру,У кого-нибудь есть идеи, как решить эту проблему?

NB потенциально связан с Перевод curl в Matlab / Webwrite (он имеет дело с вложенным значением)

...