Wie kann ich eine Datei mit libcurl herunterladen, anstatt sie auf der Festplatte zu speichern, einfach den Dateiinhalt lesen? Ich sehe, dass ich die WRITEFUNCTION verwenden kann, um die Datei auf die Festplatte zu schreiben, aber ich sehe nicht, wie ich einfach vom Server ziehen und lesen kann, ohne zuerst auf der Festplatte zu speichern.Eine über libcurl heruntergeladene Datei lesen
Antwort
Sie können WRITEFUNCTION verwenden, um überall zu schreiben, wo Sie möchten, und sogar Dinge nur im Speicher zu behalten, ohne auf die Festplatte zu schreiben. Schauen Sie sich das Beispiel in der libcurl
Website:
http://curl.haxx.se/libcurl/c/getinmemory.html
Das Beispiel ist C-ish, aber Sie können leicht die Zuweisungen mit einem vector<byte>
oder einem string
oh ok, und die MemoryChunck ist Ny Daten in der Datei? Was ist, wenn alles nicht nur eine Struktur ist, sondern komplexer? – judeclarke
Sie können alles, was Sie möchten, als Benutzerdatenzeiger übergeben und dann wie gewünscht formatieren und verwenden. Sie könnten eine Zeichenfolge übergeben, wie in der Frage @ karlphillip, die oben angegeben wurde, oder Sie könnten Ihre eigene komplexere Datenstruktur übergeben – Pablo
möglich Duplikat von [Speichern cURL Inhalt ersetzen führen in eine Zeichenfolge in C++] (http://stackoverflow.com/questions/9786150/save-curl-content-result-into-a-string-in-c) – karlphillip
es ist kein duplikat, ich habe mote als nur ein strang zu lesen und nicht alles in eine Zeichenfolge zu lesen und zu analysieren – judeclarke
'std :: string' wurde in diesem Fall verwendet, um den Inhalt der Datei zu speichern, die heruntergeladen wurde. Und selbst wenn Sie nicht "std :: string" für den Job verwenden möchten, zeigt dieser Code genau, was zu tun ist und wie es gemacht wird. ** Es ist ein Duplikat **. – karlphillip