在C语言的 libcurl
中,添加 x-www-form-urlencoded
参数时,可以通过设置请求的 Content-Type
头为 application/x-www-form-urlencoded
,并将表单数据作为 POST 字符串发送。
下面是一个示例,展示如何在 C 代码中使用 libcurl
发送 x-www-form-urlencoded
参数:
#include <stdio.h>
#include <curl/curl.h>int main(void) {CURL *curl;CURLcode res;// 初始化 CURL 环境curl = curl_easy_init();if(curl) {// 设置目标 URLcurl_easy_setopt(curl, CURLOPT_URL, "http://example.com/api");// 设置 POST 数据(x-www-form-urlencoded 格式)const char *post_data = "param1=value1¶m2=value2";// 指定 HTTP 请求为 POSTcurl_easy_setopt(curl, CURLOPT_POST, 1L);// 设置 POST 数据curl_easy_setopt(curl, CURLOPT_POSTFIELDS, post_data);// 添加 HTTP 头,指定 Content-Type 为 x-www-form-urlencodedstruct curl_slist *headers = NULL;headers = curl_slist_append(headers, "Content-Type: application/x-www-form-urlencoded");curl_easy_setopt(curl, CURLOPT_HTTPHEADER, headers);// 执行请求res = curl_easy_perform(curl);// 检查请求是否成功if(res != CURLE_OK) {fprintf(stderr, "curl_easy_perform() failed: %s\n", curl_easy_strerror(res));}// 清理curl_slist_free_all(headers);curl_easy_cleanup(curl);}return 0;
}
说明:
curl_easy_setopt(curl, CURLOPT_URL, "http://example.com/api");
:设置目标 URL。curl_easy_setopt(curl, CURLOPT_POSTFIELDS, post_data);
:设置表单数据,格式为key1=value1&key2=value2
。headers = curl_slist_append(headers, "Content-Type: application/x-www-form-urlencoded");
:指定Content-Type
为application/x-www-form-urlencoded
。
运行此代码后,将会以 x-www-form-urlencoded
格式发送 POST 请求。