RestFullRequest

value RestFullRequest ( value rest, string strHttpVerb, string strUriPath, string strBodyText / array arrBodyBytes, BYREF string strResponse / BYREF array arrResponse );

Rückgabewert

Rückgabewert

Beschreibung

TRUE / true / 1

Die REST-Anfrage wurde erfolgreich abgeschlossen.

FALSE / false / 0

Das REST-Anfrage ist fehlgeschlagen. Ist das REST-Objekt rest gültig, kann die Ursache mit RestGetLastError bzw. RestGetStatusCode ausgelesen werden.

Parameter

rest

Das gültige REST-Objekt, des REST-Servers an dem die vollständige REST-Abfrage durchgeführt werden soll.

strHttpVerb

Gibt die Methode an, die der REST-Server zur Verarbeitung der Anfrage verwenden soll.

Wert

Beschreibung

"GET"

Unter die Angabe der URI strUriPath wird eine Ressource (zum Beispiel eine JSON-Antwort) vom Server angefordert. Sind strBodyText/arrBodyBytes Inhalte vorhanden, so werden diese mitversandt.
Ein GET-Aufruf kann beliebig oft durchgeführt werden, da dieser Aufruf nur Daten abfragt und daher keine Daten am Server verändert.

"POST"

Unter die Angabe der URI strUriPath werden Daten zur weiteren Verarbeitung an den Server verschickt. Sind strBodyText/arrBodyBytes Inhalte vorhanden, so werden diese mitversandt.
Ein POST-Aufruf kann Daten am Server verändern bzw. einen Prozess am Server starten.

"PUT"

Unter die Angabe der URI strUriPath werden Daten zur weiteren Verarbeitung an den Server verschickt. Sind strBodyText/arrBodyBytes Inhalte vorhanden, so werden diese mitversandt.
Ein PUT-Aufruf erzeugt entweder neue Daten am Server oder verändert bestehende Ressourcen.

"DELETE"

Unter die Angabe der URI strUriPath werden Daten zur weiteren Verarbeitung an den Server verschickt. Sind strBodyText/arrBodyBytes Inhalte vorhanden, so werden diese mitversandt.
Ein DELETE-Aufruf löscht vorhandene Ressourcen vom Server.

 

strBodyText

Der Body als Zeichenkette, dessen Inhalt an die Resource strUriPath des Servers gesandt werden soll. Soll kein Body übertragen werden, muss dieser Parameter ein Leerstring "" oder null sein.

arrBodyBytes

Der Body als array mit Byteinhalt, dessen Inhalt an die Resource strUriPath des Servers gesandt werden soll. Soll kein Body übertragen werden, muss dieser Parameter ein Leerstring "" oder null sein.

strResponse

Die Antwort des REST-Servers auf diese Anforderung als Zeichenkette.

arrResponse

Die Antwort des REST-Servers auf diese Anforderung als array mit Byteinhalt.

Bemerkungen

Die Funktion FullRestRequest schickt eine vollständige REST-Anfrage an den REST-Server, der über das REST-Objekt rest erreichbar ist. Die gesamte Antwort des Servers wird in strResponse bzw. arrResponse zurückgegeben.
Die Anfrage setzt sich aus dem möglicherweise zuvor erstellten Header, dem hier übergebenen URI strUriPath und dem Body strBodyText/arrBodyBytes zusammen.
Der Body der Anfrage ist optional. Wenn strBody einen JSON-formatierten String enthält, der ein Array im "multipart/form-data"-Format darstellt, wird anstelle einer einfachen Requestanfrage eine Multipart-Requestanfrage entsprechend dem JSON-Inhalt ausgelöst. Wird kein Body benötigt, reicht die Übergabe eines leeren Strings "" oder einer Null für strBodyText/arrBodyBytes aus.

Diese Funktion ruft intern nacheinander die Funktionen RestSendRequest, RestReadResponseHeader und RestReadResponse auf, sodass diese Funktionen in der Regel nicht aufgerufen werden zu brauchen.

Beispiel

//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// 
//Sample_RestFullRequest ()

//ip.jsontest.com liefert als Antwort die IP-Adresse des anfragenden Clients

value rest;
string strLastError, strResponse;
if (!RestConnect(rest, "http://ip.jsontest.com"))
    RestGetLastError(rest, strLastError, true);
    return;
end
RestFullRequest(rest, "GET", "/", NULL, strResponse);

strResult = JsonExpand(strResponse);
//Inhalt von strResponse:
//{
//  "ip": "82.165.12.98"
//}
RestDisconnect(rest);

////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
//Sample_Multipart_RestFullRequest ()

value rest;
RestConnect(rest, "http://www.scharnagl.com", 80, false, false, 2000, 2000);

string multipart = 
"{'multipart/form-data': [" + 
"    { 'name':'upload', 'filename':'icloud.png', 'body': {'file':'C:/temp/icloud.png'} }, " + 
"    { 'name':'action', 'body': 'store' } " +
"]}";

RestEnableDebugMode(rest, true);

string response;
RestFullRequest(rest, "POST", "/test", multipart, response);

string lastRequestContent;
lastRequestContent = RestGetLastDebugRequest(rest);

RestDisconnect(rest);

//lastRequestContent:
//
//POST /test HTTP/1.1
//Host: www.scharnagl.com
//Content-Type: multipart/form-data; boundary=------------030404000509090706080404
//Content-Length: 779
//
//--------------030404000509090706080404
//Content-Disposition: form-data; name=upload; filename="icloud.png"
//
//‰PNG
//
//IHDR|‚F€sBIT|dˆ    pHYs
//*
//*ŠÞ&DtEXtSoftwarewww.inkscape.org›î<IDATH‰½”Ï+DQÇ¿ïQRÉŠšÙˆÉBlII‰$[V²´²°ÄZ‘•…@IÊÂb,ÌB£‘PŠX(¥„ÅœWϘ1æ—Sßî=ç{>÷žw» ÿ²â,×$%•IŠJ:•ô™v‰º(?í    Xê~[Ÿ    hx÷n€CàÍ{f2…A`èF|EÃöÍË-t6à8I«¶7ÅKE_no:X9peÉÀ9ðjþP›ªE&ˆXþf:ز%^+Zž4 OSVã6¬Øðµ`ú…“iÜj|É°jâ7â·-l'ɶÄwÛlÁ‚w@cOíÀ°Ü[í JÀ¾fóJT“`Þ•ÔhÉQ–O×ov&iÝæ!WÒ£9•€IÒ‰µ®¤˜9]‚µØ0Ừ£yþgÀ³ÕŸtIÚ’Ôg;ˆ(Þë\­ÙäH:Ôéí X£0¶ÔòNæYHR¿¤RóGÿüZÒž)þ!VPûZJãèÌŠIEND®B`‚
//--------------030404000509090706080404
//Content-Disposition: form-data; name=action
//
//store
//--------------030404000509090706080404--

Die REST-Funktionen

Siehe auch  RestConnect, RestConnectAsync, RestDisconnect, RestFullRequestAsync, RestGetLastError