一个http请求工具

最近花了1月的时间写了一个小工具,主要用来爬网,这篇博客先说说这个http请求工具吧。

还是先看看整个模块的类图吧:


先说说这个类的作用吧:

RequestInfo 请求类型参数 ,为了便于后面扩展所以这里封装成一个class 。

ResponseInfo 返回参数的类型 返回数据有 请求参数、http返回头和返回体(流的形式)、返回的状态

RequestStateObject 是在http请求是用来保存状态的一个基类

LogManager 是用来记录异常的工具类

IHttpRequest 是用来发起Http请求的接口,RequestHttpWebRequest 是用HttpWebRequest来实现这个接口,RequestSocketHttp用socket来实现这个接口。

StoreBase 用来存储请求对象,StoreMemory把请求对象存储在 ConcurrentQueue<RequestInfo> 而StoreMSMQ 把请求存放到MSMQ中。

RequestFactoryBase 负责创建IHttpRequest的实例,而RequestFactoryMemory继承了RequestFactoryBase

说说主要的流程吧:

1.用户调用RequestFactoryBase的AddRequestTask 发起http请求,同是调用AddResponseHandler 注册回调函数。

2.RequestFactoryBase 把接收到的请求实例放到StoreBase 中,通过调用StoreBase的AddRequestInfo 来实现这个功能

3.RequestFactoryBase中一个线程在实时从队列中获取请求实例,通过调用StoreBase的GetRequestInfo来完成。

4.当RequestFactoryMemory获取请求对象后,在通过GetAvailableHttpRequest 获取可以使用的IHttpRequest,开始异步请求url

5.当请求完成时 IHttpRequest 是发起新线程 来执行回调函数。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值