How to create http MessageBody body with fields that contain dashes
I would like to create http message bodies with fields that contain dashes. I haven’t been able to find a workaround for Matlab disallowing hyphens (dashes) in the var names.
Here is what I’m trying to do – for illustration – I have an underscore in place of a hyphen the "test_var" (below)
Even after generating the RequestMessage (req1 below), you cannot change "test_var" to "test-var" because the RequestMessage is still storing the request as a struct (not as a string which could be modified).
method = matlab.net.http.RequestMethod.POST;
header = matlab.net.http.HeaderField(‘Content-Type’, ‘application/json’);
header = addFields(header,’User-Agent’, ‘my-client/99.9’);
header = addFields(header,’Accept’, ‘application/json’);
% Struct approach
struct1 = struct(‘login’, ‘me’, ‘password’, ‘pw123’, ‘test_var’, true)
body1 = matlab.net.http.MessageBody(struct1)
req1 = matlab.net.http.RequestMessage(method,header,body1)
show(req1)
POST
Content-Type: application/json
User-Agent: my-client/99.9
Accept: application/json
{"login":"me","password":"pw123","test_var":true}
req1.Body.Data
ans =
struct with fields:
login: ‘me’
password: ‘pw123’
test_var: 1I would like to create http message bodies with fields that contain dashes. I haven’t been able to find a workaround for Matlab disallowing hyphens (dashes) in the var names.
Here is what I’m trying to do – for illustration – I have an underscore in place of a hyphen the "test_var" (below)
Even after generating the RequestMessage (req1 below), you cannot change "test_var" to "test-var" because the RequestMessage is still storing the request as a struct (not as a string which could be modified).
method = matlab.net.http.RequestMethod.POST;
header = matlab.net.http.HeaderField(‘Content-Type’, ‘application/json’);
header = addFields(header,’User-Agent’, ‘my-client/99.9’);
header = addFields(header,’Accept’, ‘application/json’);
% Struct approach
struct1 = struct(‘login’, ‘me’, ‘password’, ‘pw123’, ‘test_var’, true)
body1 = matlab.net.http.MessageBody(struct1)
req1 = matlab.net.http.RequestMessage(method,header,body1)
show(req1)
POST
Content-Type: application/json
User-Agent: my-client/99.9
Accept: application/json
{"login":"me","password":"pw123","test_var":true}
req1.Body.Data
ans =
struct with fields:
login: ‘me’
password: ‘pw123’
test_var: 1 I would like to create http message bodies with fields that contain dashes. I haven’t been able to find a workaround for Matlab disallowing hyphens (dashes) in the var names.
Here is what I’m trying to do – for illustration – I have an underscore in place of a hyphen the "test_var" (below)
Even after generating the RequestMessage (req1 below), you cannot change "test_var" to "test-var" because the RequestMessage is still storing the request as a struct (not as a string which could be modified).
method = matlab.net.http.RequestMethod.POST;
header = matlab.net.http.HeaderField(‘Content-Type’, ‘application/json’);
header = addFields(header,’User-Agent’, ‘my-client/99.9’);
header = addFields(header,’Accept’, ‘application/json’);
% Struct approach
struct1 = struct(‘login’, ‘me’, ‘password’, ‘pw123’, ‘test_var’, true)
body1 = matlab.net.http.MessageBody(struct1)
req1 = matlab.net.http.RequestMessage(method,header,body1)
show(req1)
POST
Content-Type: application/json
User-Agent: my-client/99.9
Accept: application/json
{"login":"me","password":"pw123","test_var":true}
req1.Body.Data
ans =
struct with fields:
login: ‘me’
password: ‘pw123’
test_var: 1 #messagebody, #requestmessage MATLAB Answers — New Questions