Gate HTTP - wysyłanie zapytania z zawartością w formacie FormData
Niektóre serwisy i urządzenia wymagają, by przesyłane zapytania zawierały w nagłówku parametr content-type ustawiony jako application/x-www-form-urlencoded.
Taka sytuacja ma miejsce między innymi w przypadku integracji z zamkiem Tedee, gdzie w celu uzyskania tokenu należy wysłać następujące zapytanie:
POST https://tedee.b2clogin.com/tedee.onmicrosoft.com/B2C_1_SignIn_Ropc/oauth2/v2.0/token
Content-Type: application/x-www-form-urlencoded
grant_type=password
&client_id=02106b82-0524-4fd3-ac57-af774f340979
&scope=openid 02106b82-0524-4fd3-ac57-af774f340979
&response_type=token
&username={username}
&password={password}
UWAGA! W miejsce {username} oraz {password} należy wpisać odpowiednie dane.
W takiej sytuacji ustawienia obiektu wirtualnego HttpRequest powinny wyglądać następująco:
Natomiast skrypt ustawiający zawartość cechy RequestBody przedstawia się jak poniżej:
local get_key = {"&grant_type=password&client_id=02106b82-0524-4fd3-ac57-af774f340979&scope=openid+02106b82-0524-4fd3-ac57-af774f340979&response_type=token&username=support%40grenton.com&password=support"}
Gate_HTTP->TedeeLock_AuthorizationKey->SetRequestBody(get_key)
UWAGA! Należy zauważyć, że przed parametrem grant_type pojawił się znak &.
Przy ustawianiu wartości cechy RequestBody należy pamiętać o znakach specjalnych wymagających zakodowania:
: | / | ? | # | [ | ] | @ | ! | $ | & | ' | ( | ) | * | + | , | ; | = | % | spacja |
%3A | %2F | %3F | %23 | %5B | %5D | %40 | %21 | %24 | %26 | %27 | %28 | %29 | %2A | %2B | %2C | %3B | %3D | %25 | + |
UWAGA! Niezakodowane znaki & oraz = rozdzielają parametry i ich wartości.