【发布时间】:2020-06-23 01:04:16
【问题描述】:
我想模拟web表单提交到PHP API,但是失败了,我尝试了很多方法。 我的代码
#define HADES "Content-Type:application/x-www-form-urlencoded;charset=utf-8"
int SendPacket(char *packet, const char *server)
{
curl_global_init(CURL_GLOBAL_ALL);
CURL *curl = curl_easy_init();
if (!curl) {
return -1;
}
CURLcode ret;
struct curl_slist *haderlist = NULL;
struct curl_httppost *post = NULL;
struct curl_httppost *last = NULL;
haderlist = curl_slist_append(haderlist, HADES);
curl_formadd(&post, &last, CURLFORM_COPYNAME, "username",
CURLFORM_COPYCONTENTS,
"11111111111", CURLFORM_END);
curl_formadd(&post, &last, CURLFORM_COPYNAME, "password",
CURLFORM_COPYCONTENTS,
"111111", CURLFORM_END);
curl_formadd(&post, &last, CURLFORM_COPYNAME, "client", CURLFORM_FILE,
"wap", CURLFORM_END);
curl_easy_setopt(curl, CURLOPT_HTTPHEADER, haderlist);
curl_easy_setopt(curl, CURLOPT_URL, server);
curl_easy_setopt(curl, CURLOPT_POST, 1);
curl_easy_setopt(curl, CURLOPT_POSTFIELDS, post);
curl_easy_setopt(curl, CURLOPT_WRITEFUNCTION, write_callback);
//SendData
ret = curl_easy_perform(curl);
if (ret != CURLE_OK ) {
curl_easy_strerror(ret);
return -1;
}
return 0;
}
我把post的参数改成这个格式就可以正常发送了:username = 11111 & password = 1111 & client = wap 不用form_add函数,但是不知道怎么做. 如何纠正这个问题?我不知道
【问题讨论】: