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. |
"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. |
"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. |
"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. |
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--
Siehe auch RestConnect, RestConnectAsync, RestDisconnect, RestFullRequestAsync, RestGetLastError