资源简介
C版本的HTTP,可以上传多个文件,可以向服务器发送json字串.自己工程中正在使用.因为也是是从网上找到的,做了一定修改,所以共享出来.
代码片段和文件信息
#include
#include
#include
#include
#include
#include
#include “gh_http.h“
#include “tcpclient.h“
static int http_post_file(tcpclient *pclient const char *page
const char* message_json const char *filepath
char **response)
{
//check if the file is valid or not
struct stat stat_buf;
if(lstat(filepath&stat_buf)<0){
GH_LOG_INFO(“lstat %s fail“ filepath);
return -1;
}
if(!S_ISREG(stat_buf.st_mode)){
GH_LOG_INFO(“%s is not a regular file!“filepath);
return -1;
}
char *filename;
filename=strrchr((char*)filepath‘/‘);
if(filename==NULL)
{
}
filename+=1;
if(filename>=filepath+strlen(filepath)){
//‘/‘ is the last character
GH_LOG_INFO(“%s is not a correct file!“filepath);
return -1;
}
//GH_LOG_INFO(“filepath=%sfilename=%s“filepathfilename);
char content_type[4096];
memset(content_type 0 4096);
char post[512]host[256];
char *lpbuf*ptmp;
int len=0;
lpbuf = NULL;
const char *header2=“User-Agent: Is Http 1.1\r\nCache-Control: no-cache\r\nAccept: */*\r\n“;
sprintf(post“POST %s HTTP/1.1\r\n“page);
sprintf(host“HOST: %s:%d\r\n“pclient->remote_ippclient->remote_port);
strcpy(content_typepost);
strcat(content_typehost);
char *boundary = (char *)“-----------------------8d9ab1c50066a“;
strcat(content_type “Content-Type: multipart/form-data; boundary=“);
strcat(content_type boundary);
strcat(content_type “\r\n“);
//--Construct request data {filePath file}
char content_before[8192];
memset(content_before 0 8192);
//GH_LOG_TEXT(message_json);
//附加数据。
strcat(content_before “--“);
strcat(content_before boundary);
strcat(content_before “\r\n“);
strcat(content_before “Content-Disposition: form-data; name=\“consite_message\“\r\n\r\n“);
strcat(content_before message_json);
strcat(content_before “\r\n“);
strcat(content_before “--“);
strcat(content_before boundary);
strcat(content_before “\r\n“);
strcat(content_before “Content-Disposition: attachment; name=\“file\“; filename=\““);
strcat(content_before filename);
strcat(content_before “\“\r\n“);
strcat(content_before “Content-Type: image/jpeg\r\n\r\n“);
char content_end[2048];
memset(content_end 0 2048);
strcat(content_end “\r\n“);
strcat(content_end “--“);
strcat(content_end boundary);
strcat(content_end “--\r\n“);
int max_cont_len=5*1024*1024;
char content[max_cont_len];
int fd;
fd=open(filepathO_RDONLY0666);
if(!fd){
GH_LOG_INFO(“fail to open file : %s“filepath);
return -1;
}
len=read(fdcontentmax_cont_len);
close(fd);
char *lenstr;
lenstr = (char*)GH_MEM_MALLOC(256);
sprintf(lenstr “%d“ (int)(strlen(content_before)+len+strlen(content_en
相关资源
- LitJson修改版,Unity支持float数据类型
- 根据银行卡号查询银行名称、开户行
- 温度传感器
- 一个delphi封装的WinHttp
- vue 移动端应用完整项目模仿qq音乐
- 纯pb代码操作json数据
- Loadrunner 的HTTPS的测试配置
- Egret白鹭(json)图集切割工具.zip
- json2.js json未定义的解决方案!
- 统一管理系统
- 易语言POST上传文件.rar
- Jtopo读取Json生成树状拓扑图
- labview HTTP POST 通信程序 Demo.vi
- 遍历多级树状json获得父子节点值
- google 的JSON插件
- SpringBoot开发理财平台产品系统网盘地
- 使用HTTP上传文件到WEB服务器
- 解决Sublime_Text3不能在线“Install Pack
- Apache配置文件httpd.conf
- 火狐httprequester文件
- json校验,格式化,显示报错所在行数
- 易语言Http读文件API源码
- 百度POST实时推送V3.0
- utils json
- HTTP 简介PPT
- postman教程.txt
- libcurl.lib 支持HTTPS的静态库
- 嵌入式 WinCE 专用 Newtonsoft.Json.dll 亲测
- JsonView.zip
- 全国所有大学数据包含经纬度(json格
评论
共有 条评论