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

📄 lib503.c

📁 harvest是一个下载html网页得机器人
💻 C
字号:
#include "test.h"#ifdef HAVE_SYS_SOCKET_H#include <sys/socket.h>#endif#include <sys/time.h>#include <sys/types.h>/* * Source code in here hugely as reported in bug report 651460 by * Christopher R. Palmer. * * Use multi interface to get HTTPS document over proxy, and provide * auth info. */CURLcode test(char *URL){  CURL *c;  CURLM *m;  curl_global_init(CURL_GLOBAL_ALL);  c = curl_easy_init();  curl_easy_setopt(c, CURLOPT_PROXY, arg2); /* set in first.c */  curl_easy_setopt(c, CURLOPT_URL, URL);  curl_easy_setopt(c, CURLOPT_USERPWD, "test:ing");  curl_easy_setopt(c, CURLOPT_PROXYUSERPWD, "test:ing");  curl_easy_setopt(c, CURLOPT_HTTPPROXYTUNNEL, 1);  curl_easy_setopt(c, CURLOPT_HEADER, 1);  {    CURLMcode res;    int running;    char done=FALSE;    m = curl_multi_init();    res = curl_multi_add_handle(m, c);    while(!done) {      fd_set rd, wr, exc;      int max_fd;      struct timeval interval;      interval.tv_sec = 1;      interval.tv_usec = 0;      while (res == CURLM_CALL_MULTI_PERFORM) {        res = curl_multi_perform(m, &running);        if (running <= 0) {          done = TRUE;          break;        }      }      if(done)        break;            if (res != CURLM_OK) {        fprintf(stderr, "not okay???\n");        return 80;      }      FD_ZERO(&rd);      FD_ZERO(&wr);      FD_ZERO(&exc);      max_fd = 0;      if (curl_multi_fdset(m, &rd, &wr, &exc, &max_fd) != CURLM_OK) {        fprintf(stderr, "unexpected failured of fdset.\n");        return 89;      }      if (select(max_fd+1, &rd, &wr, &exc, &interval) == -1) {        fprintf(stderr, "bad select??\n");        return 95;      }      res = CURLM_CALL_MULTI_PERFORM;    }  }  curl_multi_remove_handle(m, c);  curl_easy_cleanup(c);  curl_multi_cleanup(m);	  return 0;}

⌨️ 快捷键说明

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