PPL6-Icon Patrick's Programming Library Version 6.4.21 - Dokumentation
ppl6::CCurl Klassenreferenz

CURL-Klasse. Mehr ...

Öffentliche Typen

enum  HTTPVERSION { HTTP_1_0 =1, HTTP_1_1 }
 

Öffentliche Methoden

 CCurl ()
 Constructor der Curl-Klasse. Mehr ...
 
 ~CCurl ()
 
int AddCAFile (const char *filename)
 
int AddPostVar (const char *name, const char *data, const char *contenttype=NULL)
 
int AddPostVar (const char *name, int val, const char *contenttype=NULL)
 
int AddPostVar (CAssocArray &param, const char *prefix=NULL)
 
void Clear ()
 
int ClearHeader ()
 Angepasste HTTP-Header löschen. Mehr ...
 
int CopyResultBuffer (CBinary &bin)
 
void DebugHandler (int type, const char *data, size_t size)
 Ausgabe von Debug-Information durch libcurl. Mehr ...
 
int EnableSignals (bool enable)
 Signal-Handler ein- oder ausschalten. Mehr ...
 
int Escape (CString &target, CAssocArray &source)
 
int Escape (CString &string)
 
int Get ()
 
int Get (const char *parameter)
 
int Get (CAssocArray &param)
 GET-Aufruf mit Parametern aus einem Array. Mehr ...
 
void * getCurlHandle () const
 
int GetHeader (CString &str)
 
CString GetHeader ()
 
CString GetLastURL ()
 
int GetResultBuffer (void **buffer, size_t *size)
 
int GetResultBuffer (CBinary &bin)
 
CString GetResultBuffer ()
 
const char * GetURL ()
 
int Post ()
 
int Post (CAssocArray &param)
 Daten Multipart-encoded senden. Mehr ...
 
int PostFields (CAssocArray &param)
 Daten URL-encoded posten. Mehr ...
 
int Reset ()
 
int SetBrowser (const char *browser)
 
int SetHeader (const char *name, const char *value)
 HTTP-Header setzen. Mehr ...
 
int SetHttpVersion (CCurl::HTTPVERSION version)
 
void SetLogfile (CLog *log)
 
int SetMaximumPersistantConnects (int value)
 
int SetPassword (const CString &password)
 
int SetProxy (const char *proxy, int port)
 
int SetReferer (const char *url)
 
int SetTimeout (int seconds)
 
int SetURL (const char *url)
 
int SetUsername (const CString &username)
 
int SetUserPassword (const char *username, const char *password)
 
int SetUserPassword (const char *userpassword)
 
size_t StoreResult (void *ptr, size_t bytes, int type)
 
int VerifyPeer (bool verify)
 

Öffentliche, statische Methoden

static bool isSupported ()
 

Öffentliche Attribute

CNotifyHandler call_done
 
CNotifyHandler call_receive
 
CNotifyHandler call_send
 

Private Methoden

int SetOptOk (int ret)
 

Private Attribute

bool aboard
 
CString Browser
 
char * errorbuffer
 
CString GetCall
 
void * handle
 
CString Header
 
void * headers
 
void * last
 
CLoglog
 
void * post
 
CString Proxy
 
CString Referer
 
char * resultbuffer
 
size_t resultbuffer_size
 
CString Url
 
CString UserPassword
 

Ausführliche Beschreibung

Die Klasse CCurl 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 

Beschreibung der Konstruktoren und Destruktoren

ppl6::CCurl::CCurl ( )

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.

ppl6::CCurl::~CCurl ( )

Dokumentation der Elementfunktionen

int ppl6::CCurl::AddCAFile ( const char *  filename)
int ppl6::CCurl::AddPostVar ( const char *  name,
const char *  data,
const char *  contenttype = NULL 
)
int ppl6::CCurl::AddPostVar ( const char *  name,
int  val,
const char *  contenttype = NULL 
)
int ppl6::CCurl::AddPostVar ( CAssocArray param,
const char *  prefix = NULL 
)
void ppl6::CCurl::Clear ( )
int ppl6::CCurl::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.
int ppl6::CCurl::CopyResultBuffer ( CBinary bin)
void ppl6::CCurl::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
int ppl6::CCurl::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
int ppl6::CCurl::Escape ( CString target,
CAssocArray source 
)
int ppl6::CCurl::Escape ( CString string)
int ppl6::CCurl::Get ( )
int ppl6::CCurl::Get ( const char *  parameter)
int ppl6::CCurl::Get ( CAssocArray 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 * ppl6::CCurl::getCurlHandle ( ) const
int ppl6::CCurl::GetHeader ( CString str)
CString ppl6::CCurl::GetHeader ( )
CString ppl6::CCurl::GetLastURL ( )
int ppl6::CCurl::GetResultBuffer ( void **  buffer,
size_t *  size 
)
int ppl6::CCurl::GetResultBuffer ( CBinary bin)
CString ppl6::CCurl::GetResultBuffer ( )
const char * ppl6::CCurl::GetURL ( )
bool ppl6::CCurl::isSupported ( )
static
int ppl6::CCurl::Post ( )
int ppl6::CCurl::Post ( CAssocArray param)
int ppl6::CCurl::PostFields ( CAssocArray 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
int ppl6::CCurl::Reset ( )
int ppl6::CCurl::SetBrowser ( const char *  browser)
int ppl6::CCurl::SetHeader ( const char *  name,
const char *  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.
int ppl6::CCurl::SetHttpVersion ( CCurl::HTTPVERSION  version)
void ppl6::CCurl::SetLogfile ( CLog log)
int ppl6::CCurl::SetMaximumPersistantConnects ( int  value)
int ppl6::CCurl::SetOptOk ( int  ret)
private
int ppl6::CCurl::SetPassword ( const CString password)
int ppl6::CCurl::SetProxy ( const char *  proxy,
int  port 
)
int ppl6::CCurl::SetReferer ( const char *  url)
int ppl6::CCurl::SetTimeout ( int  seconds)
int ppl6::CCurl::SetURL ( const char *  url)
int ppl6::CCurl::SetUsername ( const CString username)
int ppl6::CCurl::SetUserPassword ( const char *  username,
const char *  password 
)
int ppl6::CCurl::SetUserPassword ( const char *  userpassword)
size_t ppl6::CCurl::StoreResult ( void *  ptr,
size_t  bytes,
int  type 
)
int ppl6::CCurl::VerifyPeer ( bool  verify)

Dokumentation der Datenelemente

bool ppl6::CCurl::aboard
private
CString ppl6::CCurl::Browser
private
CNotifyHandler ppl6::CCurl::call_done
CNotifyHandler ppl6::CCurl::call_receive
CNotifyHandler ppl6::CCurl::call_send
char* ppl6::CCurl::errorbuffer
private
CString ppl6::CCurl::GetCall
private
void* ppl6::CCurl::handle
private
CString ppl6::CCurl::Header
private
void* ppl6::CCurl::headers
private
void * ppl6::CCurl::last
private
CLog* ppl6::CCurl::log
private
void* ppl6::CCurl::post
private
CString ppl6::CCurl::Proxy
private
CString ppl6::CCurl::Referer
private
char* ppl6::CCurl::resultbuffer
private
size_t ppl6::CCurl::resultbuffer_size
private
CString ppl6::CCurl::Url
private
CString ppl6::CCurl::UserPassword
private

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