3

I want to make an Http Post request with Bearer Authentication to my api using my Arduino Mkr Wifi 1010, but I couldn't find the appropriate library to do something like this (code generated with one made with Postman):

    POST /api/v1/rilevamento/transaction/commit HTTP/1.1
Host: www.....:8082
Authorization: Bearer eyJhb.......
Content-Type: application/json
Content-Length: 233

{
    "id": 0,
    "dispositivo": "sesto",
    "nomeutente": "MyName",
    "cognomeutente": "MySurname",
    "mailutente": "[email protected]",
    "data": "2020-11-23T09:23:03.142+00:00",
    "temperatura": 37.5
}

Can you tell me where to find this library? I tried WifiNiNa httpClient, ArduinoHttpClient, HTTPClient and other but I couldn't get any response or even enter in the method of my api on debug.

1 Answer 1

6

The "Authorization" is simply an HTTP header. So add it in your request like:

http.addHeader("Authorization", token);

The value of "token" is just the string "Bearer " followed by your authorization string. Don't neglect the SPACE after the word "Bearer". It will look like:

"Bearer eyJhb......"

On the Arduino MKR WiFi 1010 you use the WiFiNINA library which is slightly different. Here is some example code:

  if (client.connect(server, 80)) {
    client.println("POST /test/post.php HTTP/1.1");
    client.println("Host: www.targetserver.com");
    client.println(authorizationHeader);
    client.println("Content-Type: application/x-www-form-urlencoded");
    client.print("Content-Length: ");
    client.println(postData.length());
    client.println();
    client.print(postData);
  }

The variable authorizationHeader will have the "Authorization: Bearer xxxxx...." authorization string.

Or you can replace the client.println(authorizationHeader); by:

client.print("Authorization: Bearer ");
client.print(token);

to avoid dealing with concatenations, etc.

client can be an instance of WiFiSSLClient which works with both WiFi101 and WiFiNINA.

2
  • I believe this is made with HTTPClient which is for ESP modules, can I use it with my MKR Wifi?
    – Riccardo
    Nov 24, 2020 at 15:51
  • With the MKR WiFi 1010 you use the WiFiNINA library which is slightly different. I've updated my answer with the relevant details.
    – jwh20
    Nov 24, 2020 at 17:18

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge that you have read and understand our privacy policy and code of conduct.

Not the answer you're looking for? Browse other questions tagged or ask your own question.