① 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語言即可。