HTTPRequestMemory()

Syntax

Ergebnis = HTTPRequestMemory(Typ, URL$ [, *Daten, Datengröße [, Flags [, Header()]]])
Beschreibung
Sendet eine HTTP-Anfrage ("HTTP request") mit optionalen Binär-Daten. Falls nur Text-Daten gesendet werden müssen, kann HTTPRequest() verwendet werden. Dieser Befehl kann die REST Web-API problemlos verarbeiten. FinishHTTP() muss immer aufgerufen werden, nachdem die Anforderung ausgeführt wurde.

Parameter

Typ Der Typ der Anfrage. Dies kann einer der folgenden Werte sein:
  #PB_HTTP_Get    : GET Request ('*Daten' Parameter wird ignoriert)
  #PB_HTTP_Post   : POST Request ('*Daten' Parameter wird gesendet, sofern angegeben)
  #PB_HTTP_Put    : PUT Request ('*Daten' Parameter wird gesendet, sofern angegeben)
  #PB_HTTP_Patch  : PATCH Request ('*Daten' Parameter wird gesendet, sofern angegeben)
  #PB_HTTP_Delete : DELETE Request ('*Daten' Parameter wird gesendet, sofern angegeben)
URL$ Die URL, an die die Anfrage gesendet werden soll.
*Daten (optional) Der mit der Anfrage zu sendende Speicherpuffer.
Datengröße (optional) Die Größe (in Bytes) des mit der Anfrage zu sendenden Speicherpuffers.
Flags (optional) Dies kann eine Kombination der folgenden Werte sein:
  #PB_HTTP_Asynchronous: startet den Download asynchron.
  #PB_HTTP_NoRedirect  : folgt keinen automatischen Weiterleitungen.
  #PB_HTTP_NoSSLCheck  : prüft nicht, ob das SSL-Zertifikat gültig ist (kann zu Testzwecken nützlich sein).
  #PB_HTTP_HeadersOnly : nur Header abrufen.
  #PB_HTTP_WeakSSL     : zur Unterstützung älterer Server.
  #PB_HTTP_Debug       : um Debug-Informationen in der Konsole auszugeben.
Headers() (optional) Eine Map aus Stringpaaren, um zusätzliche Header für die Anforderung anzugeben. Beispiel:
  NewMap Header$()
  Header$("Content-Type") = "octectstream"
  Header$("User-Agent") = "Firefox 54.0"
  Header$("NoParamHeader") = ""  ; Ohne Angabe eines String-Wertes, wird dies ein leerer Parameter sein.

Rückgabewert

Gibt die HTTP-Request-Kennung zurück, wenn der Aufruf erfolgreich initialisiert wurde, andernfalls Null. HTTPInfo() kann verwendet werden, um Informationen zur Anfrage zu erhalten. Wenn #PB_HTTP_Asynchronous angegeben wurde, können HTTPProgress() und AbortHTTP() verwendet werden.
HTTPMemory() kann verwendet werden, um das Ergebnis als Rohpuffer ("raw") abzurufen (der Rohpuffer muss mit FreeMemory() freigegeben werden).
FinishHTTP() muss immer aufgerufen werden, um eine erfolgreich initialisierte HTTP-Anforderung zu beenden, auch wenn der Aufruf synchron erfolgte.

Anmerkungen

Auf Linux muss 'libcurl' installiert sein, damit dieser Befehl funktioniert (die meisten Linux-Distributionen haben es bereits vorinstalliert).

Beispiel

  HttpRequest = HTTPRequestMemory(#PB_HTTP_Get, "https://www.google.com")
  If HttpRequest
    Debug "StatusCode: " + HTTPInfo(HTTPRequest, #PB_HTTP_StatusCode)
    Debug "Response: " + HTTPInfo(HTTPRequest, #PB_HTTP_Response)
    
    FinishHTTP(HTTPRequest)
  Else
    Debug "Request creation failed"
  EndIf

Siehe auch

HTTPRequest(), URLEncoder(), AbortHTTP()

Unterstützte OS

Alle

<- HTTPRequest() - Http Inhaltsverzeichnis - HTTPTimeout() ->