135 Star 1.1K Fork 350

GVP搜狗开源 / workflow

 / 详情

WF编程小示例1: 抓取gitee首页

待办的
成员
创建于  
2021-06-30 21:31

我们努力通过每天一个小示例的方式,向大家展示WF框架的使用方法。第一个示例我们以gitee首页为例,展示如何从互联网上抓取下来一个网页,并把网页内容打印在stdout:

#include <stdio.h>
#include "workflow/WFTaskFactory.h"

void callback(WFHttpTask *task)
{
    const void *body;
    size_t size;

    if (task->get_resp()->get_parsed_body(&body, &size))
        fwrite(body, 1, size, stdout);

    printf("\nFinished. Press enter to end.\n"); 
}

int main(void)
{
    WFHttpTask *task = WFTaskFactory::create_http_task("http://gitee.com/", 3, 2, callback);
    task->start();
    getchar();
    return 0;
}

简单讲解一下,我们通过工厂类的create_http_task接口创建一个http任务,URL为gitee的首页,并允许最多3次重定向,2次重试。我们特意指定http的URL而不是https,是为了展示重定向功能。当然用户也可以直接用https的URL来创造任务。
任务启动之后,我们通过getchar让主进程先堵住,因为我们的任何任务都是非堵塞的,start操作并不会等待任务的结束。为了简单这个示例里我们并没有实现唤醒,用户需要看到结束提示时,输入回车结束程序。
用WF框架写代码是不是非常的简单直接符合自然思维?赶快下载代码试一试呀。

评论 (0)

xiehan 创建了任务
xiehan 关联仓库设置为搜狗开源/workflow
展开全部操作日志

登录 后才可以发表评论

状态
负责人
里程碑
Pull Requests
关联的 Pull Requests 被合并后可能会关闭此 issue
分支
开始日期   -   截止日期
-
置顶选项
优先级
参与者(1)
C++
1
https://gitee.com/sogou/workflow.git
git@gitee.com:sogou/workflow.git
sogou
workflow
workflow

搜索帮助