1Danke
ERLEDIGT
JA
JA
ANTWORTEN
4
4
ZUGRIFFE
400
400
EMPFEHLEN
-
Hallo liebes Forum,
ich habe ein kleines Problem. Ich möchte das cURL Result in einen String speichern. Mein bisheriger Code sieht so aus:
Code :1 2 3 4 5 6 7 8 9 10
CURL *curl; CURLcode res; curl = curl_easy_init(); if(curl) { curl_easy_setopt(curl, CURLOPT_URL, "http://www.test.de"); res = curl_easy_perform(curl); curl_easy_cleanup(curl); }
So wie es aussieht wird der Code in die Variable "res" gespeichert. Ich weis allerdings nicht was das für ein Typ ist. Ich brauche unbedingt das Result als String. Kann mir jemand helfen?
Vielen Dank
grußWer mit dem Strom schwimmt, erreicht die Quelle nie.
-
19.12.11 13:44 #2
- Registriert seit
- Jun 2005
- Beiträge
- 8.168
Hi.Das brauchst du auch nicht genau wissen. Es ist allerdings irgendein Integer-Typ in dem ein Fehlercode kodiert ist. Siehe http://curl.haxx.se/libcurl/c/libcurl-errors.html
Setze einfach CURLOPT_WRITEFUNCTION und CURLOPT_WRITEDATA. Dann schreibst du eine Callback-Funktion und kannst dort deinen String zusammenbauen. Ungefähr so:
GrußCode c:1 2 3 4 5 6 7 8 9 10 11 12 13
size_t append_string( char *ptr, size_t size, size_t nmemb, void *userdata) { if (ptr != NULL) { char *buf = (char*)userdata; memcpy(buf + strlen(buf), ptr, size); buf[strlen(buf) + size] = '\0'; } } ... char buf[5000]; // oder malloc curl_easy_setopt(curl, CURLOPT_WRITEFUNCTION, &append_string); curl_easy_setopt(curl, CURLOPT_WRITEDATA, &buf);
PS: Falls du C++ verwendest kannst du natürlich auch einen Zeiger auf einen std::string übergeben. Das macht die ganze Sache noch einfacher.Geändert von deepthroat (19.12.11 um 13:46 Uhr)
If at first you don't succeed, try again. Then quit. No use being a damn fool about it.
-
Hi deepthroat,
danke für deine Antwort. Ich verwende C++. Kannst du mir kurz ein Beispiel mit dem "pointer" zeigen? Ich wollte es so einfach wie nur möglich machen.
Vielen Dank
grußWer mit dem Strom schwimmt, erreicht die Quelle nie.
-
19.12.11 14:33 #4
- Registriert seit
- Jun 2005
- Beiträge
- 8.168
GrußCode cpp:1 2 3 4 5 6 7 8 9 10 11 12
size_t append_string( char *ptr, size_t size, size_t nmemb, void *userdata) { if (ptr != NULL) { std::string* str = reinterpret_cast<std::string*>(userdata); str->append(ptr, size * nmemb); } return (size * nmemb); } ... std::string str; curl_easy_setopt(curl, CURLOPT_WRITEDATA, &str);
If at first you don't succeed, try again. Then quit. No use being a damn fool about it.
-
Vieeeeeeeeeeelen Dank. Es funktioniert :-D *freu*
Wer mit dem Strom schwimmt, erreicht die Quelle nie.
Ähnliche Themen
-
Zugriff auf ActiveDocument.FormFields(STRING).Result dauert ewig
Von excelite im Forum Visual Basic 6.0Antworten: 5Letzter Beitrag: 21.12.10, 08:47 -
public String replaceAll(String regex, String replacement) und das $-Zeichen
Von takidoso im Forum JavaAntworten: 5Letzter Beitrag: 22.11.10, 17:31 -
Umsetzung PHP mit CURL > PHP ohne CURL - benötige Hilfe
Von Mofu im Forum PHPAntworten: 3Letzter Beitrag: 27.04.07, 14:01 -
String aus HTML lesen CURL
Von danielke im Forum PHPAntworten: 4Letzter Beitrag: 04.10.04, 20:47 -
(?-?-?-?) RESULT: NaN
Von Neurodeamon im Forum Javascript & AjaxAntworten: 18Letzter Beitrag: 03.03.04, 06:07





Zitieren

Login






