苏飞论坛

 找回密码
 马上注册

QQ登录

只需一步,快速开始

分布式系统框架(V2.0) 轻松承载百亿数据,千万流量!讨论专区 - 源码下载 - 官方教程

HttpHelper爬虫框架(V2.7-含.netcore) HttpHelper官方出品,爬虫框架讨论区 - 源码下载 - 在线测试和代码生成

HttpHelper爬虫类(V2.0) 开源的爬虫类,支持多种模式和属性 源码 - 代码生成器 - 讨论区 - 教程- 例子

查看: 55380|回复: 25
打印 上一主题 下一主题

[更新] 核心更新:Httphelper万能框架新增异步调用方法

[复制链接]
跳转到指定楼层
发表于 2017-5-18 14:36:51 | 只看该作者 回帖奖励 |正序浏览 |阅读模式
核心更新:Httphelper万能框架新增异步调用方法



讨论区http://www.sufeinet.com/forum-169-1.html  

教程:http://httphelper.sufeinet.com/Course.aspx

例子http://httphelper.sufeinet.com/demo.aspx

源码下载http://www.sufeinet.com/thread-9926-1-1.html


购买年费会员,终身VIP,都可直接下载源码,框架购买链接
http://www.sufeinet.com/plugin.php?id=qmx8_buy_usergroup:vip


使用方法如下

   首先要引用命名空间
[C#] 纯文本查看 复制代码
using CsharpHttpHelper.Enum;
using CsharpHttpHelper;


然后以Get本站为例子代码如下

[C#] 纯文本查看 复制代码
            //创建Httphelper对象
            HttpHelper http = new HttpHelper();
            //创建Httphelper参数对象
            HttpItem item = new HttpItem()
            {
                URL = "http://www.sufeinet.com"//URL     必需项    
            };
            //开始异步调用
            http.BeginInvokeGetHtml(item, new ResultHandler(SetHtml));


异步调用所用的方法如下
[C#] 纯文本查看 复制代码
        /// <summary>
        /// 在异步执行完成后要回调的方法
        /// </summary>
        /// <param name="result"></param>
        public void SetHtml(HttpResult result)
        {
            //获取请请求的Html
            string html = result.Html;
            //获取请求的Cookie
            string cookie = result.Cookie;

            //状态码
            HttpStatusCode code = result.StatusCode;
            //状态描述
            string Des = result.StatusDescription;
            if (code == HttpStatusCode.OK)
            {
                //状态为200
            }
        }


完整代码

[C#] 纯文本查看 复制代码
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using CsharpHttpHelper;
using System.Net;
using System.Text;
using CsharpHttpHelper.Enum;

namespace CsharpHttpHelper_Demo
{
    public partial class HttpGet_Demo : System.Web.UI.Page
    {
        protected void Page_Load(object sender, EventArgs e)
        {
            //创建Httphelper对象
            HttpHelper http = new HttpHelper();
            //创建Httphelper参数对象
            HttpItem item = new HttpItem()
            {
                URL = "http://www.sufeinet.com"//URL     必需项    
            };
            //开始异步调用
            http.BeginInvokeGetHtml(item, new ResultHandler(SetHtml));
          
        }
        /// <summary>
        /// 在异步执行完成后要回调的方法
        /// </summary>
        /// <param name="result"></param>
        public void SetHtml(HttpResult result)
        {
            //获取请请求的Html
            string html = result.Html;
            //获取请求的Cookie
            string cookie = result.Cookie;

            //状态码
            HttpStatusCode code = result.StatusCode;
            //状态描述
            string Des = result.StatusDescription;
            if (code == HttpStatusCode.OK)
            {
                //状态为200
            }
        }
    }
}

好了使用方法还是比较简单的,大家赶紧下载使用吧。



本帖被以下淘专辑推荐:



1. 开通SVIP会员,免费下载本站所有源码,不限次数据,不限时间
2. 加官方QQ群,加官方微信群获取更多资源和帮助
3. 找站长苏飞做网站、商城、CRM、小程序、App、爬虫相关、项目外包等点这里
推荐
发表于 2017-5-18 15:27:34 | 只看该作者
太厉害了 支持苏飞框架
回复 支持 1 反对 0

使用道具 举报

23
 楼主| 发表于 2021-10-23 17:34:21 | 只看该作者
深度撞擊 发表于 2021-10-23 17:27
复制了例子,异步运行不起来。

有什么提示吗,参数是否能传过去,会不会是在执行方法是出错了。
22
发表于 2021-10-23 17:27:49 | 只看该作者
复制了例子,异步运行不起来。
21
发表于 2020-12-28 14:27:14 | 只看该作者
6666666
回复

使用道具 举报

20
 楼主| 发表于 2019-12-9 12:32:34 | 只看该作者
一夜七次 发表于 2019-12-7 11:06
用了一段时间。
这个异步请求特别容易阻塞。用着用着就没法请求了。。不知道有什么办法可以解决?

提示信息是什么
19
发表于 2019-12-7 11:06:39 | 只看该作者
用了一段时间。
这个异步请求特别容易阻塞。用着用着就没法请求了。。不知道有什么办法可以解决?
18
 楼主| 发表于 2018-5-30 14:37:13 | 只看该作者
Homeless 发表于 2018-5-30 10:18
我是这样的
初始化一个类
然后类里面有请求

异步的只能在异步方法中实现,Item参数在我的方法里未提供,你可以选择自行修改,或者等我下个版本更新,我估计会在下个月15号前更新,另外你这边尽量一次性把问题描述完整,你上面其实并没有提到是在异步情况下
17
发表于 2018-5-30 10:18:17 | 只看该作者
sufeinet 发表于 2018-5-30 08:49
item的类本来就是保持不会变的,你只要不重新New一个就不会消失,请求之后一样可以使用。

我是这样的
初始化一个类
然后类里面有请求
现在用的同步请求,失败了重试一次,失败了再重试一次
但是我看新的异步请求,是在另一个方法中,只能拿到result
这样就无法获取是第几次请求或者其他的信息,只有请求结果可用
16
 楼主| 发表于 2018-5-30 08:49:03 | 只看该作者
Homeless 发表于 2018-5-29 09:52
建议可以增加额外的附属参数
比如在item中写一个参数,在result中可以拿到
这样比如做项目时,第一次访问出 ...

item的类本来就是保持不会变的,你只要不重新New一个就不会消失,请求之后一样可以使用。
15
发表于 2018-5-29 09:52:46 | 只看该作者
建议可以增加额外的附属参数
比如在item中写一个参数,在result中可以拿到
这样比如做项目时,第一次访问出错了,想重试一次,可以有个容错处理
14
发表于 2018-3-29 14:01:43 | 只看该作者
登陆界面,需要获取缓存多个数据库表的时候,需要用异步拿到很多张表数据的时候,要使用站长的这个例子,好腻害,刚好借鉴一下~~~~~
您需要登录后才可以回帖 登录 | 马上注册

本版积分规则

QQ|手机版|小黑屋|手机版|联系我们|关于我们|广告合作|苏飞论坛 ( 豫ICP备18043678号-2)

GMT+8, 2025-3-31 06:14

© 2014-2021

快速回复 返回顶部 返回列表