C/C++使用HTTP协议上传
上传文件:
http://zengrong.net/post/2088.htm
#include <stdio.h>
#include <string.h> #include <curl/curl.h> int main(int argc, char *argv[])
{
CURL *curl;
CURLcode res; struct curl_httppost *formpost=NULL;
struct curl_httppost *lastptr=NULL;
struct curl_slist *headerlist=NULL;
static const char buf[] = "Expect:"; curl_global_init(CURL_GLOBAL_ALL); /* Fill in the file upload field */
curl_formadd(&formpost,
&lastptr,
CURLFORM_COPYNAME, "message",
CURLFORM_COPYCONTENTS, "hello",
CURLFORM_END); /* Fill in the filename field */
curl_formadd(&formpost,
&lastptr,
CURLFORM_COPYNAME, "filename",
CURLFORM_FILE,"test.xlsx",
CURLFORM_CONTENTTYPE, "application/vnd.ms-excel",
CURLFORM_END); curl = curl_easy_init();
/* initalize custom header list (stating that Expect: 100-continue is not
wanted */
headerlist = curl_slist_append(headerlist, buf);
if(curl) {
/* what URL that receives this POST */
curl_easy_setopt(curl, CURLOPT_URL, "http://192.168.1.107/protocol/upload_questions/");
if ( (argc == ) && (!strcmp(argv[], "noexpectheader")) )
/* only disable 100-continue header if explicitly requested */
curl_easy_setopt(curl, CURLOPT_HTTPHEADER, headerlist);
curl_easy_setopt(curl, CURLOPT_HTTPPOST, formpost); /* Perform the request, res will get the return code */
res = curl_easy_perform(curl);
/* Check for errors */
if(res != CURLE_OK)
fprintf(stderr, "curl_easy_perform() failed: %s\n",
curl_easy_strerror(res)); /* always cleanup */
curl_easy_cleanup(curl); /* then cleanup the formpost chain */
curl_formfree(formpost);
/* free slist */
curl_slist_free_all (headerlist);
}
return ;
}
C/C++使用HTTP协议上传的更多相关文章
- HTTP协议上传boundary确定&下载content-disposition理解
HTTP协议上传文件-协议 上传文件需要将form标签 的 ENCTYPE 属性设置为 multipart/form-data属性, 与 application/x-www-form-urlencod ...
- Java基础知识强化之网络编程笔记11:TCP之TCP协议上传文本文件
1. TCP协议上传文本文件(客户端上传数据到服务器端) (1)客户端(上传数据到服务端) package cn.itcast_11; import java.io.BufferedReader; i ...
- Android用http协议上传文件
http协议上传文件一般最大是2M,比较适合上传小于两M的文件 [代码] [Java]代码 001import java.io.File; 002import java.io.FileInp ...
- c++使用http协议上传文件到七牛云服务器
使用c++ http协议上传文件到七牛服务器时,比较搞的一点就是header的设置: "Content-Type:multipart/form-data;boundary=xxx" ...
- http 协议上传文件multipart form-data boundary 说明--转载
原文地址:http://xixinfei.iteye.com/blog/2002017 含义 ENCTYPE="multipart/form-data" 说明: 通过 http 协 ...
- 通过HTTP协议上传文件
HTTP是很常见的协议,虽然用得很多,但对细节的了解却是很浅,这回通过向服务端上传文件信息来理解细节.网络库的选择:1.WinHTTP是windows下常用的库:2.CURL是广受喜爱的开源 ...
- Java基础知识强化之网络编程笔记12:TCP之TCP协议上传文本文件并给出反馈
1. 客户端: package cn.itcast_12; import java.io.BufferedReader; import java.io.BufferedWriter; import j ...
- Java使用SFTP协议上传、下载文件
http://blog.csdn.net/haidage/article/details/6859716 在自己尝试之后发现以上内容里有坑. 1.关闭连接的时候,必须要sftp.getSession( ...
- PHP socket上传文件图片
最近了解了下下socket方面的东西,想做一个socket上传文件的例子. 在网上搜了搜代码执行后,图片数据传输了一半,图片的下半部分是灰色的.然后就自己仿着搜来的代码和php.net 中socket ...
随机推荐
- 【bzoj3757】 苹果树
http://www.lydsy.com/JudgeOnline/problem.php?id=3757 (题目链接) MD调了好久,最后蒯了几个标程交上去,没想到都RE了...最后才看到: = = ...
- MVC3的安装方法(含安装包)
安装方式: 1.直接官方下载安装包安装.链接:http://pan.baidu.com/s/1nvLfG8p 密码:534g 2.整个项目通过nuget进行安装.(推荐) 总结: MVC3有个尴尬的问 ...
- sstream使用简介
sstream即字符串流.sstream有三种类:ostringstream:用于输出操作,istringstream:用于输入操作,stringstream:用于输入输出操作其实我感觉只用第三个就够 ...
- linux忘记mysql密码找回方法
linux忘记mysql教程密码找回方法 今天我们主要是讲一下关于linux忘记mysql密码处理方法,下面提供了5种linux忘记mysql密码找回方法哦. 方法一: # /etc/init. ...
- >>> FilterDispatcher <<< is deprecated! Please use the new filters!
在struts2.3.20下,web.xml中使用 会出现*********************************************************************** ...
- CSS3-transform变形功能
<!DOCTYPE html><html lang="en"><head> <meta charset="UTF-8" ...
- BZOJ3082: Graph2
经典问题.强制在线的话非常复杂. 考虑离线. 每条边的存在时间是一个区间,因此按时间建立一颗线段树,将每条边插入,拆成log条边.然后dfs线段树,每次并查集合并当前节点的所有边,到叶子节点时回答询问 ...
- 【原】React中,map出来的元素添加事件无法使用
在使用react中,经常用到react的map函数,用法和jquery里中的map一样,但是,如果你在每个map出来的元素中添加,你会发觉添加的事件无法关联, 比如,我们很多的评论,我需要在每个评论下 ...
- 模拟退火解决TSP问题
// monituihuo.cpp : 定义控制台应用程序的入口点. // #include "stdafx.h" #include <stdio.h> #includ ...
- log4net 记录到数据库和本地文件
1)配置代码 <?xml version="1.0" encoding="utf-8" ?> <configuration> <c ...