Wysyłanie zapytania z zawartością w formacie FormData

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.