Interactive brokers OAuth1.0 header fields problem.

3 views (last 30 days)
Good day, I need help formatting header fields.
For Interactive brokers the OAuth requests require a header with the name “Authorization”. The authorization header must start with the string “OAuth”. Following "OAuth", it has to contain key/value pairs separated by comma. the key/value pairs include the consumer_key, timestamp, oauth_nonce, callback_URI... to name a few.
My problem is the initial format of the header.
I've used web options, to set the fields, but this does not send the data in the format Interactive Brokers want.
An example of how interactive brokers want the data is
authorization: OAuth realm="test_realm", oauth_callback="oob", oauth_consumer_key="TESTCONS", oauth_nonce="
3Xa0XhqFEoXbifYZUeflx6svQUDQsgB4",...
I have also used: field = matlab.net.http.HeaderField('Authorization','OAuth');
to set up the headerfields, but this does not allow for the space between OAuth and realm. in the header string.
Is there a way to format this using Matlab tools?
  3 Comments
Ken Brown
Ken Brown on 17 Oct 2021
@Geoff Hayes I am using the reference material from Interactive Brokers (IB).
I am getting Error 400 Bad request. I dont think its the Data i am sending but the format.
Please see page 6 of the attachment as an example of the HTTP request required for IB.
Geoff Hayes
Geoff Hayes on 18 Oct 2021
@Ken Brown - I see from page six the following:
Authorization: OAuth oauth_callback="oob", \
oauth_consumer_key="TESTCONS", \ oauth_nonce="fcbc9c08d69ac269f7f1", \ oauth_signature="nHp...AA%3D%3D", \ oauth_signature_method="RSA-SHA256", \ oauth_timestamp="1473793701", \ realm="test_realm"
Could you create the authorization text as
authzText = 'OAuth oauth_callback="oob", oauth_consumer_key="TESTCONS", oauth_nonce="fcbc9c08d69ac269f7f1", oauth_signature="nHp...AA%3D%3D", oauth_signature_method="RSA-SHA256", oauth_timestamp="1473793701", realm="test_realm"'
and then create the header field as
field = matlab.net.http.HeaderField('Authorization', authzText);
where authzText is the properly formatted string that has the correct spaces between each field?

Sign in to comment.

Answers (0)

Products


Release

R2020a

Community Treasure Hunt

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

Start Hunting!