libcurl 测试例子如下:
#include "stdafx.h"
#include <stdio.h>
#include "curl/curl.h"
#include <stdlib.h>
#include <string.h>
#define POSTURL "http://10.0.13.24/a.php"
size_t write_data(void *buffer, size_t size, size_t nmemb, void *userp);
int main(int argc, char *argv[])
{
char* flag = "userfile";
char* filename = "e://aa.jpg";
CURL *curl;
CURLcode res;
struct curl_slist *http_header = NULL;
curl = curl_easy_init();
curl_easy_setopt(curl, CURLOPT_WRITEFUNCTION, write_data);
struct curl_httppost *formpost = 0;
struct curl_httppost *lastptr = 0;
curl_formadd(&formpost, &lastptr, CURLFORM_PTRNAME, "reqformat", CURLFORM_PTRCONTENTS, "plain", CURLFORM_END);
curl_formadd(&formpost, &lastptr, CURLFORM_PTRNAME, flag, CURLFORM_FILE, filename, CURLFORM_END);
curl_easy_setopt(curl, CURLOPT_URL, POSTURL);
curl_easy_setopt(curl, CURLOPT_HTTPPOST, formpost);
res = curl_easy_perform(curl);
curl_easy_cleanup(curl);
getchar();
}
// receive server return value
size_t write_data(void *buffer, size_t size, size_t nmemb, void *userp)
{
printf("receive data(%d bytes):\r\n%s", size, (char*)buffer );
return size;
}
#include "stdafx.h"
#include <stdio.h>
#include "curl/curl.h"
#include <stdlib.h>
#include <string.h>
#define POSTURL "http://10.0.13.24/a.php"
size_t write_data(void *buffer, size_t size, size_t nmemb, void *userp);
int main(int argc, char *argv[])
{
char* flag = "userfile";
char* filename = "e://aa.jpg";
CURL *curl;
CURLcode res;
struct curl_slist *http_header = NULL;
curl = curl_easy_init();
curl_easy_setopt(curl, CURLOPT_WRITEFUNCTION, write_data);
struct curl_httppost *formpost = 0;
struct curl_httppost *lastptr = 0;
curl_formadd(&formpost, &lastptr, CURLFORM_PTRNAME, "reqformat", CURLFORM_PTRCONTENTS, "plain", CURLFORM_END);
curl_formadd(&formpost, &lastptr, CURLFORM_PTRNAME, flag, CURLFORM_FILE, filename, CURLFORM_END);
curl_easy_setopt(curl, CURLOPT_URL, POSTURL);
curl_easy_setopt(curl, CURLOPT_HTTPPOST, formpost);
res = curl_easy_perform(curl);
curl_easy_cleanup(curl);
getchar();
}
// receive server return value
size_t write_data(void *buffer, size_t size, size_t nmemb, void *userp)
{
printf("receive data(%d bytes):\r\n%s", size, (char*)buffer );
return size;
}