① c语言建立TCP连接后,怎么发送HTTP的GET请求
send发送请求串 回车 再回车。 一行结束后 换另一个语句 最后要有一个空行
GET ***** 回车
回车
② C语言实现HTTP协议
要会C中的TCP客户端操作
C不会,不清楚,似乎是用Socket?
然后就是要找点教程学HTTP了,比如:
http://sites.google.com/site/xierch/text/http
③ C语言写的http协议post请求乱码
Windows 的命令行下的字符集用的是 gb2312,但你 http 请求回来的数据字符集编码是 utf-8。
转换一下字符集编码就好了。
④ c语言用http协议通讯
connect
write("请求字符串");
。。。
write("请求字符串");
⑤ c语言有没有解析http响应消息的函数或工具
用来分离处理状态行,另外六个头部行和返回数据的函数
HTTP/1.1 200 OK
Date: Mon, 12 Mar 2004 19:12:16 GMT
Server: Apache/1.3.31 (Unix) mod_throttle/3.1.2
Last-Modified: Fri, 22 Sep 2004 14:16:18
ETag: "dd7b6e-d29-39cb69b2"
Accept-Ranges: bytes
Content-Length: 3369
Connection: close
Content-Type: text/html
File content goes here
也就是根据上面这些内容的字符串data,调用一个函数比如state(data)能返回200,content(data)返回指向file content的字符串
望采纳,谢谢
⑥ c语言实现的http请求中,User-Agent该填什么
User Agent表示的是客户端软件类型,也就是浏览器类型
⑦ 如何使用c语言解析httppost请求
这个和具体的网页有关系的,你可以用HttpWatch之类的抓包工具分析一个网页的请求和返回。 然后就可以自己模仿相关的请求访问该网页了。
⑧ 用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);
⑨ 如何用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文件连接进来。
⑩ 用纯C语言 怎样编程,解析HTTP协议。
按照HTTP协议的规定,理清楚相关功能。
然后软件模型的方式解释HTTP的运行过程,可以使用UML语言。
然后将UML语言转换成C语言即可。