сталкнулся с такой проблемой, курл только начал использовать и толком еще не разобрался) и сайт только на английском, а он у меня не очень то))) так вот попробывал отправить так: #include <QtCore/QCoreApplication> #include <stdio.h> #include <curl/curl.h> #include <c++/iostream> int main(int argc, char* argv[]) { CURL* curl; char url[] = "http://zalil.ru/upload/"; char proxy[] = "92.50.163.114"; long port = 8085; char error[200]; struct curl_httppost* post = NULL; struct curl_httppost* last = NULL; curl_global_init(CURL_GLOBAL_ALL); curl = curl_easy_init(); curl_formadd(&post, &last, CURLFORM_COPYNAME, "picture", CURLFORM_FILE, "1.jpg", CURLFORM_CONTENTTYPE, "image/jpeg", CURLFORM_END); curl_easy_setopt(curl, CURLOPT_URL, url); // curl_easy_setopt(curl, CURLOPT_PROXY, "120.29.240.58:8080"); //curl_easy_setopt(curl, CURLOPT_PROXYPORT, port); //curl_easy_setopt(curl, CURLOPT_PROXYTYPE, CURLPROXY_HTTP); curl_easy_setopt(curl, CURLOPT_ERRORBUFFER, error); curl_easy_setopt(curl, CURLOPT_VERBOSE, 1); curl_easy_setopt(curl, CURLOPT_HEADER, 1); curl_easy_setopt(curl, CURLOPT_USERAGENT, "Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.8.1.1) Gecko/20061204 Firefox/2.0.0.1"); // printf("\nTrying proxy [%s:%d]:\n", proxy, port); curl_easy_setopt(curl, CURLOPT_HTTPPOST, post); curl_easy_perform(curl); // printf("Cannot perform\nError:%s\n", error); int i; std::cin >> i; return 0; } но кажется я что то сделал не правельно. в консоли выводит страницу и файл нифига не отправлен... как быть??
лол зачем тебе курл, если используешь Qt? там все проще и логичнее, благодаря единой архитектуре. и учить его достаточно просто.
В дополнение к словам Ra$cal'a: http://qt.nokia.com/doc/2.3/network.html http://doc.crossplatform.ru/qt/4.3.2/qtnetwork.html http://doc.crossplatform.ru/qt/en/4.6.x/qtnetwork.html Версию сам выбирай.
спасибо всем)) но по советам на кросплатформе, говорят что веб кит кьютишный не обладает такой мощью как курл)) вот и пришлось курл втюхивать в кьюти)) тоже заморок было с этим прикручиванием библиотек, но вроде справился)
))))но я собираюсь почти всю его мощь использовать, просто еще плохо с ним знаком)) поэтому такие легкие примеры пока стараюсь делать)) но вообще в планах использовать его на всю катушку))) а так я веб китом только вывод HTML страници делаю чтобы читабельный вид был))) ну и если нужно чтобы как обычный браузер работала софтина тоже веб кит хорошая вещь)) а вот чтобы что нить зарегать или отправить или еще что нить посложнее тут уже без курла сложновато будет, на мой взгляд... хотя возможно я ошибаюсь, я далеко еще не профи)))
ошибаешься. http://qtwiki.org/QHTTP_send_post_request и иже с ними. для посылки запросов в кьюте не мало удобных штук. http://qt.nokia.com/doc/4.6/qhttp.html там и прокси задавать можно.
спасибо большое, почитаю)) вообще по идее Qt мощная вещь и скорее всего в ней достаточно не плохая база для работы с сетью))
еще такой вопрос, делаю отправку картинки, посмотрел что в браузере отправляется постом: -----------------------------169443243924626 Content-Disposition: form-data; name="act" add -----------------------------169443243924626 Content-Disposition: form-data; name="from" file -----------------------------169443243924626 Content-Disposition: form-data; name="new_photo"; filename="000001103_s.jpeg" Content-Type: image/jpeg ...........тут код картинки на китайском)))............ я делаю отправку курлом так: struct curl_httppost* Post = NULL; struct curl_httppost* last = NULL curl_formadd(&Post, &last, CURLFORM_COPYNAME, "new_photo", CURLFORM_FILE, image.c_str(), CURLFORM_CONTENTTYPE, "image/jpeg", CURLFORM_END); curl_easy_setopt(curl, CURLOPT_HTTPPOST, Post); curl_easy_setopt(curl, CURLOPT_ERRORBUFFER, errorBuffer); curl_easy_setopt(curl, CURLOPT_URL, url.c_str()); curl_easy_setopt(curl, CURLOPT_HEADER, header); curl_easy_setopt(curl, CURLOPT_USERAGENT, "Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.8.1.1) Gecko/20061204 Firefox/2.0.0.1"); curl_easy_setopt(curl, CURLOPT_FOLLOWLOCATION, followFlag); curl_easy_setopt(curl, CURLOPT_REFERER, referer.c_str()); curl_easy_setopt(curl, CURLOPT_WRITEFUNCTION, writer); curl_easy_setopt(curl, CURLOPT_WRITEDATA, &buffer); curl_easy_setopt(curl, CURLOPT_TIMEOUT, 10); curl_easy_setopt(curl, CURLOPT_COOKIEJAR, "c:/cookie.txt"); curl_easy_setopt(curl, CURLOPT_COOKIEFILE, "c:/cookie.txt"); curl_easy_perform(curl); но ничего не выходит, что я делаю не так???))
curl_formadd(&Post, &last, CURLFORM_COPYNAME, "act", CURLFORM_COPYCONTENTS, "add", CURLFORM_END); curl_formadd(&Post, &last, CURLFORM_COPYNAME, "from", CURLFORM_COPYCONTENTS, "file", CURLFORM_END); curl_formadd(&Post, &last, CURLFORM_COPYNAME, "new_photo", CURLFORM_FILE, image.c_str(), CURLFORM_CONTENTTYPE, "image/jpeg", CURLFORM_END);
большое спасибо))) выручили очень))) я так примерно и предпологал, только не знал как вписать эти дополнительные параметры))) еще раз спасибо!!!))