Exemplo n.º 1
0
        /// <summary>
        /// Posts the async retransmission.
        /// </summary>
        /// <returns>The async string result.</returns>
        /// <param name="path">url path.</param>
        /// <param name="httpContext">original HttpContext.</param>
        public async Task <string> PostAsync(string path, HttpContext httpContext)
        {
            string uri = httpRetransmitConfig.GetUrl(path);
            INetworkHttpRequest networkRequest = NetworkRequest.CreateHttp(uri);

            networkRequest.Request.Headers["channel"] = "app";
            networkRequest.Request.Accept             = "application/json";
            networkRequest.Request.ContentType        = "application/json";
            foreach (var key in httpContext.Request.Headers.Keys)
            {
                networkRequest.Request.Headers[key] = httpContext.Request.Headers[key];
            }
            if (!string.IsNullOrWhiteSpace(httpRetransmitConfig.Token))
            {
                networkRequest.Request.Headers["Authorization"] = httpRetransmitConfig.Token;
            }
            // todo: cockie process
            // ------
            string requestBody = "";

            using (var bodyStreamReader = new StreamReader(httpContext.Request.Body))
            {
                requestBody = await bodyStreamReader.ReadToEndAsync();
            }
            networkRequest.Body = requestBody;
            //http.Body="{\"pagination\":{\"current\":1,\"pageSize\":10},\"stcd\":\"0\"}";
            var bytes = await networkRequest.PostAsync();

            return(bytes != null?Encoding.UTF8.GetString(bytes) : "");
        }
Exemplo n.º 2
0
        /// <summary>
        /// Gets the async http retransmission.
        /// </summary>
        /// <returns>The async string result.</returns>
        /// <param name="path">url path</param>
        /// <param name="httpContext">original HttpContext.</param>
        public async Task <string> GetAsync(string path, HttpContext httpContext)
        {
            INetworkHttpRequest networkRequest = NetworkRequest.CreateHttp(httpRetransmitConfig.GetUrl(path));

            networkRequest.Request.Headers["channel"] = "app";
            networkRequest.Request.Accept             = "application/json";
            foreach (var key in httpContext.Request.Headers.Keys)
            {
                networkRequest.Request.Headers[key] = httpContext.Request.Headers[key];
            }

            if (!string.IsNullOrWhiteSpace(httpRetransmitConfig.Token))
            {
                networkRequest.Request.Headers["Authorization"] = httpRetransmitConfig.Token;
            }
            // cookie process
            // Microsoft.AspNetCore.Http.Internal.RequestCookieCollection
            // var cookieContainer = new System.Net.CookieContainer ();
            // HttpWebResponse response;
            // response.Cookies;
            // httpContext.Response.Cookies

            // foreach (var keyValuePair in httpContext.Request.Cookies)
            // {
            //     cookieContainer.Add(new Cookie(keyValuePair.Key, keyValuePair.Value));
            // }
            // networkRequest.Request.CookieContainer = cookieContainer;
            // ------
            var bytes = await networkRequest.GetAsync();

            return(bytes != null?Encoding.UTF8.GetString(bytes) : "");
        }