C±à³ÌʵÏÖhttpÐÒé
´ó¼Ò¶¼ºÜÊìϤHTTPÐÒéµÄÓ¦Óã¬ÒòΪÿÌ춼ÔÚÍøÂçÉÏä¯ÀÀ×Ų»ÉÙ¶«Î÷£¬Ò²¶¼ÖªµÀÊÇHTTPÐÒéÊÇÏ൱¼òµ¥µÄ¡£Ã¿´ÎÓÃthunderÖ®ÀàµÄÏÂÔØÈí¼þÏÂÔØÍøÒ³£¬µ±Óõ½ÄǸö“ÓÃthunderÏÂÔØÈ«²¿Á´½Ó”ʱ×ܾõµÃºÜÉñÆæ¡£
ºóÀ´ÏëÏ룬ÆäʵҪʵÏÖÕâЩÏÂÔع¦ÄÜÒ²²¢²»ÄÑ£¬Ö»Òª°´ÕÕHTTPÐÒé·¢ËÍrequest£¬È»ºó¶Ô½ÓÊÕµ½µÄÊý¾Ý½øÐзÖÎö£¬Èç¹ûÒ³ÃæÉÏ»¹ÓÐhrefÖ®ÀàµÄÁ´½ÓÖ¸Ïò±êÖ¾¾Í¿ÉÒÔ½øÐÐÉîÒ»²ãµÄÏÂÔØÁË¡£HTTPÐÒéÄ¿Ç°ÓõÄ×î¶àµÄÊÇ1.1°æ±¾£¬ÒªÈ«Ãæ͸³¹µØ¸ã¶®Ëü¾Í²Î¿¼RFC2616Îĵµ°É¡£ÎÒÊÇÅÂrfcÎĵµÁ˵Ä,Òª¿´×Ô¼ºÈ¥¿´°É^_^
Ô´´úÂëÈçÏ£º
/******* http¿Í»§¶Ë³ÌÐò httpclient.c ************/
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <sys/types.h>
#include <sys/socket.h>
#include <errno.h>
#include <unistd.h>
#include <netinet/in.h>
#include <limits.h>
#include <netdb.h>
#include <arpa/inet.h>
#include <ctype.h>
//////////////////////////////httpclient.c ¿ªÊ¼///////////////////////////////////////////
/********************************************
¹¦ÄÜ£ºËÑË÷×Ö·û´®ÓÒ±ßÆðµÄµÚÒ»¸öÆ¥Åä×Ö·û
********************************************/
char * Rstrchr(char * s, char x) {
int i = strlen(s);
if(!(*s)) return 0;
while(s[i-1]) if(strchr(s + (i - 1), x)) return (s + (i - 1)); else i--;
return 0;
}
/********************************************
¹¦ÄÜ£º°Ñ×Ö·û´®×ª»»ÎªÈ«Ð¡Ð´
********************************************/
void ToLowerCase(char * s) {
while(s && *s) {*s=tolower(*s);s++;}
}
/**************************************************************
¹¦ÄÜ£º´Ó×Ö·û´®srcÖзÖÎö³öÍøÕ¾µØÖ·ºÍ¶Ë¿Ú£¬²¢µÃµ½Óû§ÒªÏÂÔصÄÎļþ
***************************************************************/
void GetHost(char * src, char * web, char * file, int * port) {
char * pA;
char * pB;
memset(web, 0, sizeof(web));
memset(file, 0, sizeof(file));
*port = 0;
if(!(*src)) return;
pA = src;
if(!strncmp(pA, "http://", strlen("http://"))) pA = src+strlen("http://");
else if(!strncmp(pA, "https://", strlen("https://"))) pA = sr
Ïà¹ØÎĵµ£º
ÔÙÉÏһƪ£¬ÎÒÃǽéÉÜÁË»ù±¾µ÷ÊÔ¡£Ö®Ç°Ò²ËµÁË£¬Ö®ËùÒ԰ѵ÷ÊÔ·ÅÔÚÇ°Ãæ½²ÊÇÒòΪºóÃæµÄÎÄÕ»ù±¾¶¼»áÓõ½µ÷ÊÔ¡£¹Û²ìÎÒÃǵijÌÐòµ½µ×·¢ÉúÁËʲô¡£ÈÃÎÒÃÇÄܹ»Ö±½ÓÃ÷Á˵Ŀ´Çå³þÎÊÌâµÄ±¾ÖÊ¡£±¾Æª½«ÉîÈëÒ»µã½éÉÜÖ¸ÕëÕâ¸öÈÃÎÞÊý³õѧÕßη¾åµÄ¶«Î÷¡£Ï£Íû´ó¼ÒÔÙ¿´Í걾ƪ֮ºóÄܶÔÖ¸ÕëÓÐеÄÈÏʶ£¬Ö®ºó²»ÔÙ¾åÅÂËü¡£¾õµÃËü¾ÍÄÇô»ØÊ¡£ÄÇÏÂÃæÎÒ ......
1. structµÄ¾Þ´ó×÷ÓÃ
¡¡¡¡Ãæ¶ÔÒ»¸öÈ˵ĴóÐÍC/C++³ÌÐòʱ£¬Ö»¿´Æä¶ÔstructµÄʹÓÃÇé¿öÎÒÃǾͿÉÒÔ¶ÔÆä±àдÕßµÄ
±à³Ì¾Ñé½øÐÐÆÀ¹À¡£ÒòΪһ¸ö´óÐ͵ÄC/C++³ÌÐò£¬ÊƱØÒªÉ漰һЩ(ÉõÖÁ´óÁ¿)½øÐÐÊý¾Ý×éºÏ
µÄ½á¹¹Ì壬ÕâЩ½á¹¹Ìå¿ÉÒÔ½«Ô±¾ÒâÒåÊôÓÚÒ»¸öÕûÌåµÄÊý¾Ý×éºÏÔÚÒ»Æð¡£´ÓijÖ̶ֳÈÉÏÀ´
˵£¬»á²»»áÓÃstruct£¬ÔõÑùÓÃstructÊÇÇø± ......
´ó¼Ò¶¼ÖªµÀÔÚUnix/LinuxÖÐÓиömanÃüÁ¿ÉÒÔ²éѯ³£ÓõÄÃüÁº¯Êý¡£¿ÉÊǶÔÓÚÎÒÃÇÕâÑùÖ»ÖªµÀÓÃ"man º¯ÊýÃû"À´²éѯµÄÈËÀ´Ëµ£¬»áÓöµ½ºÜ¶àÎÊÌ⣬±ÈÈ磺
man read£¬ÎÒÏë¿´µÄÊÇANSI CÖÐstdioµÄreadº¯ÊýÔÐͺÍ˵Ã÷£¬Ã»Ïëµ½³öÀ´µÄÈ·ÊÇBASHÃüÁîµÄ˵Ã÷£¬ÕâÊÇÔõô»ØÊ ......
һλIDΪultimusµÄ³ÌÐòÔ±¿ª·¢ÁËÒ»ÖÖÃûΪanicµÄÐÂÓïÑÔ£¬½üÈÕÒýÆðÒµ½ç¹Ø×¢¡£¸ù¾ÝGoogle CodeÉϸÃÏîÄ¿µÄ¼ò½é£¬¸ÃÓïÑÔµÄÕýʽÃû³ÆÊÇANI£¬anicÊÇÕâÖÖÓïÑԵIJο¼ÊµÏÖ¡£
ANIÊÇÒ»ÖÖʵÑéÐÔ¡¢¸ßÐÔÄÜ¡¢¾²Ì¬°²È«¡¢ÍêÈ«Òþº¬Ö§³Ö²¢ÐС¢ÃæÏò¶ÔÏóµÄͨÓÃÊý¾ÝÁ÷±à³ÌÓïÑÔ¡£
anicÓÃGNU¹¤¾ßÁ´Ð´³É£¬Òò´Ë¿ÉÒÆÖ²ÐԺܺ㬿ÉÒÔÔËÐÐÓÚËùÓÐÖ÷Á÷²Ù×÷ϵ ......