C libcurl Data aus File

KillerPinockel

Lieutenant
Registriert
Jan. 2009
Beiträge
664
Hallo,

ich möchte meinen C-Code umstellen. Früher habe ich curl als Systemaufruf (system()) verwendet. Nun möchte ich libcurl für C nutzen.
Hier wäre der frühere Curl Aufruf aus Linux
Code:
curl -X POST -u <USER>:<PASS> -H \"Content-Encoding: gzip\" -H \"Content-Type: application/json\" --data-binary @<FILENAME> <SERVER>

So richtig bekomme ich die Umstellung nicht hin. Die Daten liegen in einer Datei vor und diese kann nicht direkt übertragen werden, weil File-Upload gesperrt ist (siehe oben).
Hier mein bisheriger Code (Zugang funktioniert soweit)

Code:
CURL *curl;
		curl = curl_easy_init();
		if (curl) {
			struct curl_slist *headers = NULL;
			headers = curl_slist_append(headers, "Content-Encoding: gzip");
			headers = curl_slist_append(headers,
					"Content-Type: application/json");
			curl_easy_setopt(curl, CURLOPT_HTTPHEADER, headers);

			curl_easy_setopt(curl, CURLOPT_URL,
					"<SERVER>");
			curl_easy_setopt(curl, CURLOPT_HTTPAUTH, CURLAUTH_BASIC);
			curl_easy_setopt(curl, CURLOPT_USERPWD, "<USER>:<PASS>");

			curl_easy_setopt(curl, CURLOPT_VERBOSE, 1L);
			CURLcode res = curl_easy_perform(curl);
			if (res != CURLE_OK)
				fprintf(stderr, "curl_easy_perform() failed: %s\n",
						curl_easy_strerror(res));
			curl_slist_free_all(headers);
			curl_easy_cleanup(curl);
		}

Wäre klasse, wenn jemand kurz helfen könnte!

Danke und schönes Wochenende!
 
Zurück
Oben