iQQ.Net.WebQQCore.Im.Actor.HttpActor.Execute C# (CSharp) Method

Execute() public method

public Execute ( ) : void
return void
        public void Execute()
        {
            if (_action.ActionFuture.IsCanceled) return;

            _context.Logger.LogDebug($"[Action={GetType().Name}, HttpActorType={_type}] Begin");
            try
            {
                switch (_type)
                {
                    case HttpActorType.BuildRequest:
                    {
                        var service = _context.GetSerivce<IHttpService>(QQServiceType.HTTP);
                        var adaptor = new HttpAdaptor(_context, _action);
                        var request = _action.BuildRequest();
                        _action.ResponseFuture = service.ExecuteHttpRequestAsync(request, adaptor, _action.ActionFuture.Token);
                        break;
                    }

                    case HttpActorType.CancelRequest:
                    _action.CancelRequest();
                    break;

                    case HttpActorType.OnHttpError:
                    _action.OnHttpError(_throwable);
                    break;

                    case HttpActorType.OnHttpFinish:
                    _action.OnHttpFinish(_response);
                    break;

                    case HttpActorType.OnHttpHeader:
                    _action.OnHttpHeader(_response);
                    break;

                    case HttpActorType.OnHttpRead:
                    _action.OnHttpRead(_current, _total);
                    break;

                    case HttpActorType.OnHttpWrite:
                    _action.OnHttpWrite(_current, _total);
                    break;
                }
            }
            // 统一异常处理
            catch (Exception ex)
            {
                _context.Logger.LogDebug($"[Action={GetType().Name}, HttpActorType={_type}] Error");

                var qqEx = ex as QQException ?? new QQException(ex);
                _action.OnHttpError(qqEx);
            }
            _context.Logger.LogDebug($"[Action={GetType().Name}, HttpActorType={_type}] End");
        }