コード例 #1
0
        public async Task InvokeAsync(HttpContext context, IUcApi ucApi, IUcConfig ucConfig, UcUtility ucUtility)
        {
            NameValueCollection tempQs = new NameValueCollection();

            tempQs = HttpUtility.ParseQueryString(context.Request.QueryString.Value);
            string code = tempQs["code"];
            NameValueCollection queryString = HttpUtility.ParseQueryString(ucUtility.AuthCodeDecode(code));

            string formData       = ""; // context.Request.Form.ToString();
            var    requestReader  = new StreamReader(context.Request.Body);
            string requestContent = await requestReader.ReadToEndAsync();

            formData = requestContent;

            UcApiWrapper ucApiWrapper = new UcApiWrapper(code, queryString, formData, ucConfig, ucApi, ucUtility);

            string responseStr = ucApiWrapper.Process();

            if (ucApiWrapper.IsNeedHeaders)
            {
                foreach (var item in ucApiWrapper.Headers)
                {
                    context.Response.Headers.Add(item.Key, item.Value);
                }
            }

            await context.Response.WriteAsync(responseStr);
        }
コード例 #2
0
ファイル: UcApiWrapper.cs プロジェクト: yiyungent/UCenterApi
        public UcApiWrapper(string code, NameValueCollection queryString, string formData, IUcConfig ucConfig, IUcApi ucApi, UcUtility ucUtility)
        {
            this.Code        = code;
            this.QueryString = queryString;
            this.FormData    = formData;

            Action = QueryString["action"];
            long time;

            if (long.TryParse(QueryString["time"], out time))
            {
                Time = time;
            }
            IsInvalidRequest       = QueryString.Count == 0 && UcActions.Contains(Action);
            IsAuthracationExpiried = (UcUtility.PhpTimeNow() - Time) > 0xe10;


            this._ucConfig  = ucConfig;
            this._ucApi     = ucApi;
            this._ucUtility = ucUtility;
        }