A
Hiho,
mein Programm (geschrieben in C++, weshalb ich nicht weiß, ob dieses Thema nun zu C oder zu C++ gehört [da Libcurl reines C ist]) funktioniert prima, sofern ich die normale libcurl.lib 7.19 einbinde. Es kann erfolgreich oder eben nicht erfolgreich ggf. mit Proxy eine Website aufrufen. Sofern ich jedoch Libcurl (die 7.28.1 Version) manuell compilen will, klappt das Compilen auch. Einbinden tu ich das ganze wie folgt: als Präprozessordefine (in den MSVC [achja, ich benutze Visual Studio 12]) CURL_STATICLIB, die Runtime Multithreaded eingebunden und die anderen Libs per Linker-Einstellung so eingebunden:
C:\C++\libs\libcurl_static.lib
C:\C++\openssl-0.9.8g_static_win32\lib\ssleay32.lib
C:\C++\openssl-0.9.8g_static_win32\lib\libeay32.lib
C:\Program Files (x86)\Windows Kits\8.0\Lib\win8\um\x86\WS2_32.Lib
Compilen klappt auch, in der Praxis jedoch wird jede Connection (zumindestens mit Proxy) nicht als CURLE_OK beendet. Vielleicht gibt es Versionsunterschiede?
CURL *curl = curl_easy_init();
curl_easy_setopt(curl, CURLOPT_FAILONERROR, true);
curl_easy_setopt(curl, CURLOPT_HTTPPROXYTUNNEL, 1);
curl_easy_setopt(curl, CURLOPT_PROXY, proxy.c_str());
curl_easy_setopt(curl, CURLOPT_TIMEOUT, timeout);
curl_easy_setopt(curl, CURLOPT_URL, url.c_str());
if (curl_easy_perform(curl) == CURLE_OK) {
...
Wie gesagt, in der dynamic 7.19 Variante klappt es, in der static 7.28.1 Variante jedoch nicht.
Vielen Dank im Voraus.
€: Vor dem Funktionsaufruf wird auch noch CURL initialisiert und es handelt sich hierbei um eine Multithreading Applikation (sofern das relevant ist)
€2: Hat sich erledigt.. zuerst hatte ich noch die 7.19 CURL-Headerdateien benutzt und danach habe ich gemerkt, dass man bei Version 7.28.1 eine Funktion angeben MUSS oder eben CURLOPT_CONNECT_ONLY benutzen muss, wenn man z.B. nur einen Proxy testen möchte.