Setting HeaderFields for Bearer Token to make API requests

I need to set the Bearer Token field to 'Authorization : "Bearer <token>"' to pull data from an API however I have not been able to set this value. I have tried using the weboptions() function, but the HeadersFields field will not accept strings -- it appears to only accept numeric-type.
r= weboptions;
r.HeaderFields = 'Authorization : "Bearer <token>"';
This gives an error (r2019a). What's wrong with this statment?

回答(2 个)

You should add brackets:
'HeaderFields',{'Authorization', ['Bearer ' token]});
You can make a request using Bearer token base authentication using the following code.
function [resp, a, req] = webread2(URL,Message,BearerToken)
MyBody = matlab.net.http.MessageBody(Message);
MyHTTPOptions = matlab.net.http.HTTPOptions();
Request = matlab.net.http.RequestMessage;
Request.Method = 'POST';
Request.Header = matlab.net.http.HeaderField('Content-Type','application/json','Authorization', ['Bearer ' BearerToken]);
Request.Body = MyBody;
uri = matlab.net.URI(URL);
[resp, a, req] = Request.send(uri,MyHTTPOptions);
end

类别

帮助中心File Exchange 中查找有关 Call Web Services from MATLAB Using HTTP 的更多信息

Community Treasure Hunt

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

Start Hunting!

Translated by