⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 http.h

📁 网络爬虫程序
💻 H
字号:
/***************************************************************************//*    This code is part of WWW grabber called pavuk                        *//*    Copyright (c) 1997 - 2001 Stefan Ondrejicka                          *//*    Distributed under GPL 2 or later                                     *//***************************************************************************/#ifndef _http_h_#define _http_h_#include <time.h>#include "bufio.h"#include "doc.h"#include "dllist.h"#include "digest_auth.h"#define DEFAULT_HTTP_PORT       80#define DEFAULT_HTTP_PROXY_PORT 8080#define DEFAULT_SSL_PORT        443#define DEFAULT_SSL_PROXY_PORT  8080typedef struct{  char *addr;                   /* proxy host                        */  unsigned short port;          /* proxy port                        */  int penault;                  /* penault to reject failing proxies */  unsigned int fails;           /* number of fails for proxy         */  int is_10;                    /* this is HTTP/1.0 proxy            */  int ref;                      /* reference counting                */} http_proxy;typedef struct{  short ver_maj;                /*** major version of HTTP protocol ***/  short ver_min;                /*** minor version of HTTP protocol ***/  int ret_code;                 /*** HTTP response code             ***/  char *text;                   /*** HTTP response code description ***/} http_response;typedef struct{  bool_t all;  char *name;  char *val;} httphdr;typedef struct{  protocol proto;                      /*** protocol ***/  char *host;                          /*** hostname ***/  unsigned short port;                 /*** port     ***/  bufio *connection;                   /*** socket for persistent connection ***/  http_digest_info *auth_digest;       /*** HTTP digest access authentification info ***/  http_digest_info *auth_proxy_digest; /*** HTTP digest access proxy authentification info ***/  char *http_proxy;                    /*** HTTP proxy address ***/  unsigned short http_proxy_port;      /*** HTTP proxy port ***/} http_connection;typedef struct{  dllist *form_data;} http_url_extension;typedef enum{  HTTP_AUTH_NONE = 0,  HTTP_AUTH_USER = 1,  HTTP_AUTH_BASIC = 2,  HTTP_AUTH_DIGEST = 3,  HTTP_AUTH_NTLM = 4,  HTTP_AUTH_LAST = 5} http_auth_type_t;typedef enum{  HTTP_REQ_UNKNOWN,  HTTP_REQ_GET,  HTTP_REQ_POST,  HTTP_REQ_HEAD,  HTTP_REQ_CONNECT} http_request_type_t;typedef struct{  char *name;  http_auth_type_t id;} http_auth_type_info_t;extern char *_md5(unsigned char *);extern int http_connect(char *, int);extern int http_dumy_proxy_connect(doc *, char *, int, char *, int);extern int http_dumy_proxy_connect_real(doc *, char *, int, char *, int);extern bufio *http_get_data_socket(doc *);extern int http_repeat_request(doc *);extern int http_get_request(doc *);extern int http_head_request(doc *);extern int http_post_request(doc *);extern int http_read_mime_header(doc *, char **, int *);extern int http_throw_message_body(doc *);extern void http_handle_redirect(doc *, int);extern http_response *http_get_response_info(char *);extern void http_response_free(http_response *);extern http_auth_type_t http_get_authorization_type(char *);extern int http_handle_site_auth_info(doc *);extern int http_handle_proxy_auth_info(doc *);extern httphdr *httphdr_parse(char *);extern void httphdr_free(httphdr *);extern int http_proxy_ref(http_proxy *);extern int http_proxy_unref(http_proxy *);extern void http_proxy_free(http_proxy *);extern http_proxy *http_proxy_parse(char *);extern http_proxy *http_proxy_get(void);extern http_proxy *http_proxy_find(char *, int);extern void http_proxy_check(http_proxy *, doc *);extern const http_auth_type_info_t http_auths[];#endif

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -