How can I POST JSON arguments (Request Payload) using MATLAB's webwrite?

10 次查看(过去 30 天)
I am using a data acquisition module with a web server. I would like to Post a run command to start an acquisition. Below are my commands with the error response.
>> s_sch = 'http://webdaq316-ae.local/api/v1.0/schedule/status/';
>> options = weboptions('ContentType','json','MediaType','application/json','RequestMethod','post','ArrayFormat','json')
options =
weboptions with properties:
CharacterEncoding: 'auto'
UserAgent: 'MATLAB 9.5.0.944444 (R2018b)'
Timeout: 5
Username: ''
Password: ''
KeyName: ''
KeyValue: ''
ContentType: 'json'
ContentReader: []
MediaType: 'application/json'
RequestMethod: 'post'
ArrayFormat: 'json'
HeaderFields: []
CertificateFilename: 'C:\Program Files\MATLAB\R2018b\sys\certificates\ca\rootcerts.pem'
>> apikey = 'True'
apikey =
'True'
>> json_command = ['{"run": ', apikey,'}']
json_command =
'{"run": True}'
>> start_sch = webwrite(s_sch,json_command, options)
However, I get the following error.
Error using readContentFromWebService (line 46)
The server returned the status 415 with message "" in response to the request to URL
http://webdaq316-ae.local/api/v1.0/schedule/status/.
Error in webwrite (line 139)
[varargout{1:nargout}] = readContentFromWebService(connection, options);
  1 个评论
Fausto Soares
Fausto Soares 2019-10-24
If I start the acquisition via the web server, then I can see the POST (using Google Chrome's Developer Tools option), which contains the 'Request Payload' with the code:
{run: true}
I included these parameters in my 'json_command' argument. Is that the correct way?

请先登录,再进行评论。

回答(2 个)

Neeraj Rajpurohit
Neeraj Rajpurohit 2020-6-30
编辑:Neeraj Rajpurohit 2020-6-30
The error code here is 415, which means unsupported media type. The server is not being able to identify the request type. I see that you have added 'Arraytype' as 'json'. Instead, I suggest you to 'MediaType' attribute as 'application/json'. See the below example for reference. I am also attaching a link to the document. Hope it helps!
weboptions('MediaType','application/json');
Thanks,
Neeraj

Mudabbir Bhatti
Mudabbir Bhatti 2022-7-18
Hi Fausto,
I am having a similar problem. If you were able to solve this issue, please help me.
Thanks,
Bhatti

产品


版本

R2018b

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by