PPL7-Icon Patrick's Programming Library Version 7.0.0 - Dokumentation
ppl7::Curl Klassenreferenz

CURL-Klasse. Mehr ...

Öffentliche Typen

enum  HTTPVERSION { HTTP_1_0 =1, HTTP_1_1, HTTP_2_0 }
 

Öffentliche Methoden

 Curl ()
 Constructor der Curl-Klasse. Mehr ...
 
 Curl (const Curl &other)
 
 ~Curl ()
 
void addCAFile (const String &filename)
 
void addPostVar (const String &name, const String &data, const String &contenttype=String())
 
void addPostVar (const String &name, int val, const String &contenttype=String())
 
void addPostVar (const AssocArray &param, const String &prefix=String())
 
void clear ()
 
void clearHeader ()
 Angepasste HTTP-Header löschen. Mehr ...
 
void copyResultBuffer (ByteArray &bin) const
 
void debugHandler (int type, const char *data, size_t size)
 Ausgabe von Debug-Information durch libcurl. Mehr ...
 
void enableSignals (bool enable)
 Signal-Handler ein- oder ausschalten. Mehr ...
 
void escape (String &target, const AssocArray &source)
 
void escape (String &string)
 
void get ()
 
void get (const String &parameter)
 
void get (const AssocArray &param)
 GET-Aufruf mit Parametern aus einem Array. Mehr ...
 
void * getCurlHandle () const
 
String getHeader () const
 
String getLastURL () const
 
void getResultBuffer (void **buffer, size_t *size) const
 
ByteArrayPtr getResultBuffer () const
 
String getResultBufferAsString () const
 
String getURL () const
 
void post ()
 
void post (const AssocArray &param)
 Daten Multipart-encoded senden. Mehr ...
 
void postFields (const AssocArray &param)
 Daten URL-encoded posten. Mehr ...
 
 PPL7EXCEPTION (InitializationFailedException, Exception)
 
 PPL7EXCEPTION (MiscException, Exception)
 
 PPL7EXCEPTION (StringEscapeException, Exception)
 
 PPL7EXCEPTION (InvalidURLException, Exception)
 
 PPL7EXCEPTION (NoResultException, Exception)
 
 PPL7EXCEPTION (OperationFailedException, Exception)
 
void reset ()
 
void setBrowser (const String &browser)
 
void setHeader (const String &name, const String &value)
 HTTP-Header setzen. Mehr ...
 
void setHttpVersion (Curl::HTTPVERSION version)
 
void setLogger (Logger *log)
 
void setMaximumPersistantConnects (int value)
 
void setPassword (const String &password)
 
void setProxy (const String &proxy, int port)
 
void setReferer (const String &url)
 
void setTimeout (int seconds)
 
void setURL (const String &url)
 
void setUsername (const String &username)
 
void setUserPassword (const String &username, const String &password)
 
void setUserPassword (const String &userpassword)
 
size_t storeResult (void *ptr, size_t bytes, int type)
 
void verifyPeer (bool verify)
 

Öffentliche, statische Methoden

static String getUri (const String &uri)
 
static bool isSupported ()
 

Private Methoden

void curlResultOk (int ret) const
 

Private Attribute

bool aboard
 
String Browser
 
char * errorbuffer
 
String GetCall
 
void * handle
 
String Header
 
void * headers
 
void * httppost
 
void * last_httppost
 
Loggerlog
 
String Proxy
 
String Referer
 
char * resultbuffer
 
size_t resultbuffer_size
 
String Url
 
String UserPassword
 

Ausführliche Beschreibung

Die Klasse Curl ist eine Wrapper-Klasse zur Curl-Library, mit der Daten von Web- und FTP-Server geholt werden können.

Dokumentation der Aufzählungstypen

Aufzählungswerte
HTTP_1_0 
HTTP_1_1 
HTTP_2_0 

Beschreibung der Konstruktoren und Destruktoren

ppl7::Curl::Curl ( )

Der Konstruktor prüft zunächst, ob "curl_global_init" schon aufgerufen wurde. Dazu wird ein globaler Mutex gesetzt.

Liefert "curl_global_init" einen Fehler zurück, wird "handle" auf NULL gesetzt und der Konstruktor wird ohne weitere Initialisierung beendet. Alle weiteren Funktionen geben bei Aufruf einen Fehler zurück und es wird Fehlercode 353 gesetzt.

War Curl bereits initialisiert oder die Initialisierung war erfolgreich, wird ein Instance-Counter hochgezählt. Der Destructor zählt diesen wieder runter und bei Erreichen von 0 wird Curl wieder Deinitialisiert.

ppl7::Curl::Curl ( const Curl other)
ppl7::Curl::~Curl ( )

Dokumentation der Elementfunktionen

void ppl7::Curl::addCAFile ( const String filename)
void ppl7::Curl::addPostVar ( const String name,
const String data,
const String contenttype = String() 
)
void ppl7::Curl::addPostVar ( const String name,
int  val,
const String contenttype = String() 
)
void ppl7::Curl::addPostVar ( const AssocArray param,
const String prefix = String() 
)
void ppl7::Curl::clear ( )
void ppl7::Curl::clearHeader ( )

Mit dieser Funktion werden alle angepassten Header-Zeilen gelöscht. Siehe auch CCurl::SetHeader.

Rückgabe
Bei Erfolg gibt die Funktion 1 zurück, im Fehlerfall 0.
void ppl7::Curl::copyResultBuffer ( ByteArray bin) const
void ppl7::Curl::curlResultOk ( int  ret) const
private
void ppl7::Curl::debugHandler ( int  type,
const char *  data,
size_t  size 
)
Beschreibung:
Diese Funktion wird intern von Curl aufgerufen, um Devug-Informationen auszugeben. Dies muss vorher jedoch durch AUfruf von CCurl::SetLogfile aktiviert worden sein.
Parameter
typeArt der Information. Mögliche Werte: CURLINFO_TEXT, CURLINFO_HEADER_IN, CURLINFO_HEADER_OUT, CURLINFO_DATA_IN, CURLINFO_DATA_OUT
dataDer Debug-Text
sizeLänge des Textes
void ppl7::Curl::enableSignals ( bool  enable)
Beschreibung:
Signals werden innerhalb der Curl-Bibliothek zur Implementierung von Timeouts bei DNS-Abfragen verwendet. Verwendet die Anwendung mehrere Threads, sollte die Verwendung von Signals deaktiviert werden (siehe http://curl.haxx.se/libcurl/c/libcurl-tutorial.html#Multi-threading). Seit Version 6.4.10 der PPLib sind die Signals in der CCurl-Klasse standardmässig deaktiviert.
Ist dieses Verhalten nicht gewünscht, muss die Verwendendung von Signals explizit aktiviert werden.
Parameter
enabletrue=Signals sind zugelassen, false=keine Signals (Default)
Rückgabe
void ppl7::Curl::escape ( String target,
const AssocArray source 
)
void ppl7::Curl::escape ( String string)
void ppl7::Curl::get ( )
void ppl7::Curl::get ( const String parameter)
void ppl7::Curl::get ( const AssocArray param)
Beschreibung:
GET-Aufruf mit Parametern aus dem Array param.
Parameter
[in]paramEin Assoziatives Array mit den zusätzlichen Parametern. Die Parameter werden automatisch escaped!
void * ppl7::Curl::getCurlHandle ( ) const
String ppl7::Curl::getHeader ( ) const
String ppl7::Curl::getLastURL ( ) const
void ppl7::Curl::getResultBuffer ( void **  buffer,
size_t *  size 
) const
ByteArrayPtr ppl7::Curl::getResultBuffer ( ) const
String ppl7::Curl::getResultBufferAsString ( ) const
String ppl7::Curl::getUri ( const String uri)
static
String ppl7::Curl::getURL ( ) const
bool ppl7::Curl::isSupported ( )
static
void ppl7::Curl::post ( )
void ppl7::Curl::post ( const AssocArray param)
void ppl7::Curl::postFields ( const AssocArray param)

Diese Funktion baut aus den angegebenen Parametern einen einzelnen URL-encodeten String und verwendet die Option CURLOPT_POSTFIELDS zum Senden der Daten.

Parameter
param
Rückgabe
ppl7::Curl::PPL7EXCEPTION ( InitializationFailedException  ,
Exception   
)
ppl7::Curl::PPL7EXCEPTION ( MiscException  ,
Exception   
)
ppl7::Curl::PPL7EXCEPTION ( StringEscapeException  ,
Exception   
)
ppl7::Curl::PPL7EXCEPTION ( InvalidURLException  ,
Exception   
)
ppl7::Curl::PPL7EXCEPTION ( NoResultException  ,
Exception   
)
ppl7::Curl::PPL7EXCEPTION ( OperationFailedException  ,
Exception   
)
void ppl7::Curl::reset ( )
void ppl7::Curl::setBrowser ( const String browser)
void ppl7::Curl::setHeader ( const String name,
const String value 
)

Mit dieser Funktion wird eine zusätzliche Zeile im HTTP-Header gesetzt oder gelöscht. Zum Setzen einer Variable müssen beide Parameter (name und value) angegeben werden. Um eine Variable zu löschen, muss name angegeben werden und value muss NULL sein. Um alle Custom-Header-Zeilen zu löschen, kann die Funktion CCurl::ClearHeader verwendet werden.

Parameter
[in]nameName der Header-Variablen
[in]valueWert der Variablen oder NULL, wenn die Variable gelöscht werden soll
Rückgabe
Bei Erfolg gibt die Funktion 1 zurück, im Fehlerfall 0.
void ppl7::Curl::setHttpVersion ( Curl::HTTPVERSION  version)
void ppl7::Curl::setLogger ( Logger log)
void ppl7::Curl::setMaximumPersistantConnects ( int  value)
void ppl7::Curl::setPassword ( const String password)
void ppl7::Curl::setProxy ( const String proxy,
int  port 
)
void ppl7::Curl::setReferer ( const String url)
void ppl7::Curl::setTimeout ( int  seconds)
void ppl7::Curl::setURL ( const String url)
void ppl7::Curl::setUsername ( const String username)
void ppl7::Curl::setUserPassword ( const String username,
const String password 
)
void ppl7::Curl::setUserPassword ( const String userpassword)
size_t ppl7::Curl::storeResult ( void *  ptr,
size_t  bytes,
int  type 
)
void ppl7::Curl::verifyPeer ( bool  verify)

Dokumentation der Datenelemente

bool ppl7::Curl::aboard
private
String ppl7::Curl::Browser
private
char* ppl7::Curl::errorbuffer
private
String ppl7::Curl::GetCall
private
void* ppl7::Curl::handle
private
String ppl7::Curl::Header
private
void* ppl7::Curl::headers
private
void* ppl7::Curl::httppost
private
void * ppl7::Curl::last_httppost
private
Logger* ppl7::Curl::log
private
String ppl7::Curl::Proxy
private
String ppl7::Curl::Referer
private
char* ppl7::Curl::resultbuffer
private
size_t ppl7::Curl::resultbuffer_size
private
String ppl7::Curl::Url
private
String ppl7::Curl::UserPassword
private

Die Dokumentation für diese Klasse wurde erzeugt aufgrund der Dateien: