全网首发:C++中通过POST向服务器发送JSON的代码

简介: 全网首发:C++中通过POST向服务器发送JSON的代码

工作中需要使用json.最后抓了报文,对比代码输出,才得以解决。在这里共享出来,给需要的朋友一点帮助。


 需要整个代码的朋友,可以下载《C代码版本的HTTP POST上传文件/JSON》:


static int http_post(tcpclient *pclient, const char *page,
 const const char* message_json, int* ret_code, char **response)
    char content_buffer[4096] = {0};
    char post[512]={0};
    char host[256]={0};
    char* lpbuf = NULL;
    char* ptmp  = NULL;
    const char *header2="Connection: keep-alive\r\nAccept-Encoding: gzip, deflate\r\nAccept: */*\r\nUser-Agent: python-requests/2.18.4\r\n";
    sprintf(post,"POST %s HTTP/1.1\r\n",page);
    strcpy(content_buffer, post);
    sprintf(host,"HOST: %s:%d\r\n",pclient->remote_ip,pclient->remote_port);
    strcat(content_buffer, host);
    strcat(content_buffer, header2);
    char *lenstr;
    lenstr = (char*)GH_MEM_MALLOC(256);
    sprintf(lenstr, "%d", (int)(strlen(message_json)));
    strcat(content_buffer, "Content-Length: ");
    strcat(content_buffer, lenstr);
    strcat(content_buffer, "\r\n");
    char content_type[4096] = {0};
    strcat(content_type, "Content-Type: application/json");
    strcat(content_type, "\r\n\r\n");
    strcat(content_type, message_json);
    strcat(content_buffer, content_type);
    GH_MEM_FREE(lenstr);
    tcpclient_send(pclient, content_buffer, strlen(content_buffer));
}
目录
相关文章
|
18天前
|
JSON JavaScript 前端开发
JavaScript原生代码处理JSON的一些高频次方法合集
JavaScript原生代码处理JSON的一些高频次方法合集
|
29天前
|
自然语言处理 算法 前端开发
C++与Doxygen:精通代码文档化之道
C++与Doxygen:精通代码文档化之道
49 0
|
1月前
|
JSON 程序员 数据格式
深入探索 “JSON for Modern C++“:安装、构建与应用
深入探索 “JSON for Modern C++“:安装、构建与应用
40 0
|
1月前
|
JSON JavaScript 前端开发
C++ 智能指针与 JSON 处理:高级编程技巧与常见问题解析
C++ 智能指针与 JSON 处理:高级编程技巧与常见问题解析
267 0
|
30天前
|
Linux 编译器 程序员
【Linux 调试秘籍】深入探索 C++:运行时获取堆栈信息和源代码行数的终极指南
【Linux 调试秘籍】深入探索 C++:运行时获取堆栈信息和源代码行数的终极指南
68 0
|
18小时前
|
设计模式 编译器 数据安全/隐私保护
C++ 多级继承与多重继承:代码组织与灵活性的平衡
C++的多级和多重继承允许类从多个基类继承,促进代码重用和组织。优点包括代码效率和灵活性,但复杂性、菱形继承问题(导致命名冲突和歧义)以及对基类修改的脆弱性是潜在缺点。建议使用接口继承或组合来避免菱形继承。访问控制规则遵循公有、私有和受保护继承的原则。在使用这些继承形式时,需谨慎权衡优缺点。
9 1
|
2天前
|
设计模式 存储 Java
C++从入门到精通:3.5设计模式——提升代码可维护性与可扩展性的关键
C++从入门到精通:3.5设计模式——提升代码可维护性与可扩展性的关键
|
2天前
|
C++
【C++】在使用代码组装URL时,一定要注意的坑......
【C++】在使用代码组装URL时,一定要注意的坑......
8 0
|
24天前
|
C语言 C++ 容器
C调用C++代码
C调用C++代码
12 1
|
29天前
|
算法 程序员 C语言
C++设计哲学:构建高效和灵活代码的艺术
C++设计哲学:构建高效和灵活代码的艺术
60 1