LINUX.ORG.RU

Curl

 ,


0

2

Здравствуйте есть пост запрос curl -F files[]=@/path/to/file "http://www.example.com/" который должен загружать файл, нужно этот же запрос делать через библиотеку curl.h на с++ и получать от него ответ, но она не работает выдает ошибку, что мол сервер недоступен( а хотя если делать через запрос в консоле то все ок)

static size_t string_appender(void *ptr, size_t size, size_t nmemb, void *data)
{
    size_t realsize = size * nmemb;
    std::string* input = (std::string*)data;

    if (input)
        input->append(static_cast<const char*>(ptr), realsize);

    return realsize;
}

{
....
CURL *curl;
			CURLcode res;
			fname.clear();
			fname="/path/to/file";
			struct curl_httppost *formpost=NULL;
			struct curl_httppost *lastptr=NULL;
			struct curl_slist *headerlist=NULL;
			curl_global_init(CURL_GLOBAL_ALL);
			curl_formadd(&formpost,
			             &lastptr,
			             CURLFORM_COPYNAME, "files[]",
			             CURLFORM_FILE, fname.c_str(),
			             CURLFORM_END);
			curl = curl_easy_init();
			std::string input;
			std::string ur;
			ur.append("\"http://www.example.com\"");          
			if(curl) {
				curl_easy_setopt(curl, CURLOPT_HTTPPOST, formpost);
				curl_easy_setopt(curl, CURLOPT_URL,
				                 ur.c_str());
				curl_easy_setopt(curl, CURLOPT_HEADERFUNCTION,
				                string_appender);
				curl_easy_setopt(curl, CURLOPT_WRITEHEADER
				               , (void *)&input);

				res = curl_easy_perform(curl);				
				curl_easy_cleanup(curl);
				curl_formfree(formpost);
				curl_slist_free_all (headerlist);
			}
..........
}



Последнее исправление: mikemike (всего исправлений: 1)

кавычки внутри точно нужны?

anonymous
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.