c - C: 使用 HTTP 请求发布 json 数据
问题描述
我正在尝试使用 C 通过 URL 将 json 数据发布到服务器。我已经下载了 curl.h 包https://curl.se/download.html
并将其包含在代码中。这就是我所做的:
#include <stdio.h>
#include "F:\Desktop\myfolder\curl\include\curl\curl.h"
int main (int argc, char *argv[]) {
CURL *curl;
CURLcode res;
curl_global_init(CURL_GLOBAL_ALL);
curl = curl_easy_init();
if (curl == NULL) {
return 128;
}
char* jsonObj = "{ \"name\" : \"ABC\" , \"age\" : \"22\" }";
struct curl_slist *headers = NULL;
curl_slist_append(headers, "Accept: application/json");
curl_slist_append(headers, "Content-Type: application/json");
curl_slist_append(headers, "charset: utf-8");
curl_easy_setopt(curl, CURLOPT_URL, "http://ip-address/myapi/");
curl_easy_setopt(curl, CURLOPT_CUSTOMREQUEST, "POST");
curl_easy_setopt(curl, CURLOPT_HTTPHEADER, headers);
curl_easy_setopt(curl, CURLOPT_POSTFIELDS, jsonObj);
curl_easy_setopt(curl, CURLOPT_USERAGENT, "libcrp/0.1");
res = curl_easy_perform(curl);
curl_easy_cleanup(curl);
curl_global_cleanup();
return res;
}
不幸的是,我收到以下错误:
C:\Users\Admin\AppData\Local\Temp\ccoDiLJ0.o:gpsapi.c:(.text+0xee): undefined reference to `__imp_curl_global_init'
C:\Users\Admin\AppData\Local\Temp\ccoDiLJ0.o:gpsapi.c:(.text+0xf7): undefined reference to `__imp_curl_easy_init'
C:\Users\Admin\AppData\Local\Temp\ccoDiLJ0.o:gpsapi.c:(.text+0x136): undefined reference to `__imp_curl_slist_append'
C:\Users\Admin\AppData\Local\Temp\ccoDiLJ0.o:gpsapi.c:(.text+0x14d): undefined reference to `__imp_curl_slist_append'
C:\Users\Admin\AppData\Local\Temp\ccoDiLJ0.o:gpsapi.c:(.text+0x164): undefined reference to `__imp_curl_slist_append'
C:\Users\Admin\AppData\Local\Temp\ccoDiLJ0.o:gpsapi.c:(.text+0x185): undefined reference to `__imp_curl_easy_setopt'
C:\Users\Admin\AppData\Local\Temp\ccoDiLJ0.o:gpsapi.c:(.text+0x1a6): undefined reference to `__imp_curl_easy_setopt'
C:\Users\Admin\AppData\Local\Temp\ccoDiLJ0.o:gpsapi.c:(.text+0x1c7): undefined reference to `__imp_curl_easy_setopt'
C:\Users\Admin\AppData\Local\Temp\ccoDiLJ0.o:gpsapi.c:(.text+0x1e8): undefined reference to `__imp_curl_easy_setopt'
C:\Users\Admin\AppData\Local\Temp\ccoDiLJ0.o:gpsapi.c:(.text+0x209): undefined reference to `__imp_curl_easy_setopt'
C:\Users\Admin\AppData\Local\Temp\ccoDiLJ0.o:gpsapi.c:(.text+0x219): undefined reference to `__imp_curl_easy_perform'
C:\Users\Admin\AppData\Local\Temp\ccoDiLJ0.o:gpsapi.c:(.text+0x22c): undefined reference to `__imp_curl_easy_cleanup'
C:\Users\Admin\AppData\Local\Temp\ccoDiLJ0.o:gpsapi.c:(.text+0x235): undefined reference to `__imp_curl_global_cleanup'
collect2.exe: error: ld returned 1 exit status
这是正确的方法还是我错过了什么?我对在 C 中发送请求很陌生,因此感谢您提供任何帮助。谢谢!
解决方案
推荐阅读
- emacs - 如何使命令 paredit-forward 在邪恶模式下按预期工作?
- nestjs - NestJS:无法为拥有接口的子模块提供实例
- javascript - protractor-jasmine2-screenshot-reporter 空白截图
- arrays - Yacc 不接受有效输入
- bash - 使用 iconv 解码包含希伯来字符和德语 eszett 的文件
- unity3d - 统一获取输入字段值然后 Debug.Log ing
- c++ - MFC MDI 收集“应用”按钮例程的控制状态
- angular - 打字稿:有没有办法禁用测试文件的所有语法检查?
- vb.net - 如何启动 Backgroundworker ByRef
- ios - 无需 iTunes 和 iCloud 即可访问 iPhone 图片文件