当前位置:首页 » 编程语言 » c语言http下载文件
扩展阅读
webinf下怎么引入js 2023-08-31 21:54:13
堡垒机怎么打开web 2023-08-31 21:54:11

c语言http下载文件

发布时间: 2022-02-20 19:45:40

1. 如何用c语言实现http ftp的上传功能

hehe ..这是因为FTP跟HTTP根本不是同一种类型服务器。FTP专门是用来下载上传用的,可以算做一个网络硬盘吧..而HTTP服务器一般是WEB服务器..性质完全不一样,就好象你家里的厨房和厕所一样,功能完全不一样嘛你总不可能在厕所想做饭,在厨房想上厕所对不对,没有任何办法..你只能按最直接的地址下载

如果帮助到您,请记得采纳为满意答案哈,谢谢!祝您生活愉快! vae.la

2. 用C语言如何将结果输出到一个文本文件中保存

文件的操作步骤:

#include <stdio.h> #include <stdlib.h> int main()

{

FILE *fp;

int i, d;

fp=fopen("data.txt","w");

if(fp==NULL)

{

printf("File cannot open! " );

exit(0);

}

for(i=0; i<10; i++)

{

scanf("%d", &d);

fprintf(fp,"%d ", d);

}

fclose(fp);

return 0;

}

格式化输出:

#include <stdio.h> #include <stdlib.h> int main()

{

FILE *fp;

int i, No;

float salary;

fp=fopen("data.csv","w");

if(fp==NULL)

{

printf("File cannot open! " );

exit(0);

}

//输入5名员工的工号,并保存到文件中

for(i=0; i<5; i++)

{

scanf("%d %f", &No, &salary);

fprintf(fp,"%d, %.2f ", No, salary);

}

fclose(fp);

return 0;

}

(2)c语言http下载文件扩展阅读:

从文件中读取字符:

#include <stdio.h> #include <stdlib.h> int main()

{

FILE *fp;

char c;

if ((fp=fopen( "data.dat" , "r" ))==NULL)

{

printf("File cannot open!");

exit(0);

}

while((c=fgetc(fp))!=EOF)

putchar(c);

fclose(fp);

return 0;

}

3. c语言截取下载url中文件名称

思路大概如下:将整个字符串及其长度传给函数,然后在函数中用指针接收字符串,利用其长度把指针移到字符串结尾处,然后用循环不断将指针向前移动,并判断其指向的字符与/是不是一样的,如果一样退出循环,此时指针指向着字符串中最后一个/ 的前一个字符, 因此最后将指针再向前移2位到/后面的一个字符,最后反回指针, 再输出返回的指针后面的内容就是名称了

函数声明:char* GetName(char*,int);
整个程序:
#include<stdio.h>
char* GetName(char*,int);
int main(void)
{
char str[] = "https://gss0.bdstatic.com/70cFsjip0QIZ8tyhnq/img/logo-.gif";
char *name;
int n;
n = sizeof(str); //计算字符串的长度(包括'\0')
name = GetName(str,n); //把字符串及其长度传给函数
printf("%s\n",name); //name就是那个名称,可以输出
return 0;
}

char* GetName(char*ptr,int n)
{
int i = n; //这里i只是为循环即使终止了也未找到/而准备
ptr+=n; //把指针移到字符串的尾部,即'\0'处
while(i-->0)
{
if((*ptr--) == '/') //指针不断回移并判断是否为/符号
{
break; //从后向前遇到第一个/后退出循环
}
}
ptr+=2;
return ptr; //反回最后一个/后面的字符串即名称
}
函数原型:
char* GetName(char*ptr,int n)
{
int i = n;
ptr+=n;
while(i-->0)
{
if((*ptr--) == '/')
{
break;
}
}
ptr+=2;
return ptr;
}

4. 用c语言写一个http头文件查找函数。

#include <stdio.h>

char * xxx(char *all, char *target){
int i,j,k;
static char t[80];
j = strlen(all);
k = strlen(target);
printf("j=%d k=%d\n",j,k);
for (i=0;i<j-k-1;i++){
if (strncmp(&all[i],target,k)==0) { sscanf( &all[i+k+1],"%s",t);
printf("t = %s\n",t);
break;}
}
return t;
}

main(){
char all[]="GET / HTTP/1.1 Accept-Language: zh-cn,zh;q=0.8,en-us;q=0.5,en;q=0.3 Sec-WebSocket-Key: mHCYmHhGCn44x+g6quuzYg== Cache-Control: no-cache";
char txt[]="Sec-WebSocket-Key:";
char trs[80];
printf("%s",xxx(all,txt));
}
---------
注意 char all[]=" ...." ; 写在1行,或通过文件读入。
char txt[]="Sec-WebSocket-Key:"; 字符串里的冒号不要漏掉,
若不写冒号,计算sscanf位置 时要再加1。sscanf( &all[i+k+2],"%s",t);

5. 如何用c语言实现http服务器

//服务端简易代码如下:
#include<stdio.h>
#include<stdlib.h>

#include<err.h>
#include<event.h>
#include<evhttp.h>

voidhttp_handle(structevhttp_request*req,void*arg);/*HTTPRequestHandle*/

intmain(){
structevhttp*httpd;
event_init();
httpd=evhttp_start("0.0.0.0",2345);
if(httpd==NULL){
fprintf(stderr,"Error:Unabletolistenon%s:%d ");
exit(1);
}
evhttp_set_timeout(httpd,2000);
evhttp_set_gencb(httpd,http_handle,NULL);
event_dispatch();
evhttp_free(httpd);

return0;
}

voidhttp_handle(structevhttp_request*req,void*arg){
structevbuffer*buf;
buf=evbuffer_new();

/*Responsetheclient*/
evhttp_send_reply(req,HTTP_OK,"OK",buf);

//evbuffer_add_printf(buf,"%s","HTTPSQS_AUTH_FAILED");

/*Releasethememory*/
evbuffer_free(buf);
fprintf(stderr,"Send ");
}

编译:编译时把libevent的类库中的.so文件和.h文件连接进来。

6. c语言下载在http服务器上的文件。

URLDownLoadToFile或URLDownloadToCacheFile,可以将文件下载到文件
例子:
URLDownloadToFile(NULL,/*URL*/, "C:\\1.dat", 0, NULL);
URLDownloadToCacheFile(NULL,
/*URL*/,
/*用于保存文件位置的字符数组*/,
/*上一个参数的大小*/,NULL,NULL);

7. linux下C语言怎么读取http文件内容

http是协议
不是文件
你这个说法就有问题了。
如果你想用C读网页 可以考虑使用socket 不过还是有些麻烦的。

8. 用C语言编写一个从网上下载专辑图片的程序,求大概的怎么编写。或者具体代码。

1.首先要确定数据来源,也就是说你要从哪个网站或者站点获取相应的图片数据。
2.然后需要了解到相应站点获取图片的方式,如果是专用的站点那么应该由相应的api供别人使用,如果只是普通的符合HTTP协议的站点,那么你应该在了解http协议的基础上进行网络文件的获取。
3.这个过程中肯定会使用到网络编程,那么就应该会使用到socket,这也是你需要了解的。

9. 用C语言实现从指定的地址下载一个文件吗,并自解压

有两种实现方式
1)就是用system来运行命令,比如system("wget http://abc.com/test.rar"); 然后system("unrar x test.rr");。。。。其实这种方式就和写脚本差不多
2)如果完全自己编程,那么就要用到各种库文件了。比如下载你可以使用libcurl,rar解压你可以用libunrar,输入用户存储路径,你用scanf输入,然后根据系统的不同(windows或者linux)调用系统api来创建目录,显示下载进度,你可以先获得该文件的大小,然后根据已下载的数据量和文件大小计算进度
你确定要集体的代码吗?