libcurl
来源:互联网 发布:淘宝抢购秒杀神器 编辑:程序博客网 时间:2024/04/30 01:01
#include <stdio.h>
#include <stdlib.h>
#include <unistd.h>
#include <curl/curl.h>
#include <curl/types.h>
#include <curl/easy.h>
#include <pthread.h>
#include <string.h>
struct bkinfo{
char url[1024];
char file[1024];
};
//struct bkinfo cu;
FILE *curlfp;
//这个函数是为了符合CURLOPT_WRITEFUNCTION而构造的
//完成数据保存功能
size_t write_data(void *ptr, size_t size, size_t nmemb, void *stream)
{
//printf("************************\n%s\n",(char *)ptr);
//FILE *fp=(FILE *)stream;
if(*(char *)ptr=='N') { //空类型指针强制转化成字符型
printf("null\n");
return;
}
int written = fwrite(ptr, size, nmemb, curlfp);
return written;
}
void libc_func(void *arg)
{
//struct bkinfo cu=(struct bkinfo)arg;
if((char*)arg==NULL)return;
char url[900],file[100];
char *p;
p=strstr((char*)arg,"\n");
if(p==NULL)return;
strncpy(url,(char*)arg,p-(char*)arg);
url[p-(char*)arg]='\0';
strcpy(file,p+1);
printf("OK:%s\n%s\n",url,file);
while(1){
printf("begin\n");
//printf("%s \n",(char*)arg);
CURL *curl;
curl_global_init(CURL_GLOBAL_ALL);
curl=curl_easy_init();
curl_easy_setopt(curl,CURLOPT_URL,url);
//FILE *fp; //定义FILE类型指针
if((curlfp=fopen(file,"w"))==NULL){
curl_easy_cleanup(curl);
return;
}
////CURLOPT_WRITEFUNCTION 将后继的动作交给write_data函数处理
curl_easy_setopt(curl, CURLOPT_WRITEFUNCTION, write_data);
curl_easy_perform(curl);
fclose(curlfp);
curl_easy_cleanup(curl);
printf("over\n");
sleep(6); //设置循环执行时间间隔
}
}
/*
void use_curl(struct bkinfo cu){
pthread_t lc;
int ret;
ret=pthread_create(&lc,NULL,(void *)libc,&cu);
while(ret!=0){
ret=pthread_create(&lc,NULL,(void *)libc,&cu);
//printf("create pthread error!\n");
return;
}
}*/
int main()
{
//三个可改变的值:IP 场所编号 和版本号
char bkurl[1000]="\0";
char ip_and_port[100]="\0"; //IP和端口号
char cscode[100]="\0"; //场所编号
char vernum[100]="\0"; //版本号
char filename[100]="\0";
strcpy(filename,"./curl.txt"); //存入的本地文件名
strcpy(ip_and_port,"192.168.3.50:8088");
strcpy(cscode,"123456");
strcpy(vernum,"12");
strcpy(bkurl,"http://");
strcat(bkurl,ip_and_port);
strcat(bkurl,"/iism2/newSetDeployAction.do?code=");
strcat(bkurl,cscode);
strcat(bkurl,"&vernum=");
strcat(bkurl,vernum);
strcat(bkurl,"\n");
strcat(bkurl,filename);
//printf("111 %s\n %s\n",bkurl,filename);
/*struct bkinfo cu;
strcpy(cu.url,bkurl);
strcpy(cu.file,filename);
printf("cu info: %s\n %s\n",cu.url,cu.file);*/
printf("here\n");
pthread_t lc;
int ret;
ret=pthread_create(&lc,NULL,(void *)libc_func,bkurl);
if(ret!=0){
printf("create pthread error!\n");
return;
}
pthread_join(lc,NULL);
return 0;
}
//gcc -o curl curl.c -lpthread -lcurl
//http://192.168.3.50:8088/iism2/newSetDeployAction.do?code=123456&vernum=12
#include <stdlib.h>
#include <unistd.h>
#include <curl/curl.h>
#include <curl/types.h>
#include <curl/easy.h>
#include <pthread.h>
#include <string.h>
struct bkinfo{
char url[1024];
char file[1024];
};
//struct bkinfo cu;
FILE *curlfp;
//这个函数是为了符合CURLOPT_WRITEFUNCTION而构造的
//完成数据保存功能
size_t write_data(void *ptr, size_t size, size_t nmemb, void *stream)
{
//printf("************************\n%s\n",(char *)ptr);
//FILE *fp=(FILE *)stream;
if(*(char *)ptr=='N') { //空类型指针强制转化成字符型
printf("null\n");
return;
}
int written = fwrite(ptr, size, nmemb, curlfp);
return written;
}
void libc_func(void *arg)
{
//struct bkinfo cu=(struct bkinfo)arg;
if((char*)arg==NULL)return;
char url[900],file[100];
char *p;
p=strstr((char*)arg,"\n");
if(p==NULL)return;
strncpy(url,(char*)arg,p-(char*)arg);
url[p-(char*)arg]='\0';
strcpy(file,p+1);
printf("OK:%s\n%s\n",url,file);
while(1){
printf("begin\n");
//printf("%s \n",(char*)arg);
CURL *curl;
curl_global_init(CURL_GLOBAL_ALL);
curl=curl_easy_init();
curl_easy_setopt(curl,CURLOPT_URL,url);
//FILE *fp; //定义FILE类型指针
if((curlfp=fopen(file,"w"))==NULL){
curl_easy_cleanup(curl);
return;
}
////CURLOPT_WRITEFUNCTION 将后继的动作交给write_data函数处理
curl_easy_setopt(curl, CURLOPT_WRITEFUNCTION, write_data);
curl_easy_perform(curl);
fclose(curlfp);
curl_easy_cleanup(curl);
printf("over\n");
sleep(6); //设置循环执行时间间隔
}
}
/*
void use_curl(struct bkinfo cu){
pthread_t lc;
int ret;
ret=pthread_create(&lc,NULL,(void *)libc,&cu);
while(ret!=0){
ret=pthread_create(&lc,NULL,(void *)libc,&cu);
//printf("create pthread error!\n");
return;
}
}*/
int main()
{
//三个可改变的值:IP 场所编号 和版本号
char bkurl[1000]="\0";
char ip_and_port[100]="\0"; //IP和端口号
char cscode[100]="\0"; //场所编号
char vernum[100]="\0"; //版本号
char filename[100]="\0";
strcpy(filename,"./curl.txt"); //存入的本地文件名
strcpy(ip_and_port,"192.168.3.50:8088");
strcpy(cscode,"123456");
strcpy(vernum,"12");
strcpy(bkurl,"http://");
strcat(bkurl,ip_and_port);
strcat(bkurl,"/iism2/newSetDeployAction.do?code=");
strcat(bkurl,cscode);
strcat(bkurl,"&vernum=");
strcat(bkurl,vernum);
strcat(bkurl,"\n");
strcat(bkurl,filename);
//printf("111 %s\n %s\n",bkurl,filename);
/*struct bkinfo cu;
strcpy(cu.url,bkurl);
strcpy(cu.file,filename);
printf("cu info: %s\n %s\n",cu.url,cu.file);*/
printf("here\n");
pthread_t lc;
int ret;
ret=pthread_create(&lc,NULL,(void *)libc_func,bkurl);
if(ret!=0){
printf("create pthread error!\n");
return;
}
pthread_join(lc,NULL);
return 0;
}
//gcc -o curl curl.c -lpthread -lcurl
//http://192.168.3.50:8088/iism2/newSetDeployAction.do?code=123456&vernum=12
- libcurl
- libcurl
- libcurl
- libcurl
- libcurl
- libcurl
- libcurl
- libcurl
- libcurl
- libcurl
- libcurl
- libcurl基本使用 -- libcurl
- LibCURL概述
- LibCurl编程
- libcurl开发
- LibCurl编程
- libcurl教程
- Libcurl 教程
- autoresizingMask属性研究
- 如何设置编辑框字体的颜色
- Neural Networks
- 提升本程序进程优先级和权限(VC++源代码)
- 使程序在Linux下后台运行
- libcurl
- C# Close and Open Screen Protector
- JAVA训练1
- [POJ3270]Cow Sorting
- 使用Hessian与spring3.20集成时,遇到HessianProtocolException
- HTML(Hypertext Markup Language)概要总结
- ptrace
- GCC + 数论
- IHttpModule接口