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

조회 수: 21 (최근 30일)
Fausto Soares
Fausto Soares 2019년 10월 22일
답변: Mudabbir Bhatti 2022년 7월 18일
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

카테고리

Help CenterFile Exchange에서 JSON Format에 대해 자세히 알아보기

제품


릴리스

R2018b

Community Treasure Hunt

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

Start Hunting!

Translated by