コード例 #1
0
ファイル: WebCall.Async.cs プロジェクト: GooG2e/vk
        /// <summary>
        /// Выполнить POST запрос асинхронно.
        /// </summary>
        /// <param name="url">URL.</param>
        /// <param name="parameters">Параметры запроса.</param>
        /// <param name="webProxy">Хост.</param>
        /// <returns>Результат</returns>
        public static async Task <WebCallResult> PostCallAsync(string url, IEnumerable <KeyValuePair <string, string> > parameters, IWebProxy webProxy)
        {
            using (var call = new WebCall(url, new Cookies(), webProxy))
            {
                var request = await call._request.PostAsync(url, new FormUrlEncodedContent(parameters));

                return(await call.MakeRequestAsync(request, new Uri(url), webProxy));
            }
        }
コード例 #2
0
ファイル: WebCall.Async.cs プロジェクト: GooG2e/vk
        /// <summary>
        /// Выполнить запрос асинхронно.
        /// </summary>
        /// <param name="url">URL.</param>
        /// <param name="webProxy">Данные прокси сервера.</param>
        /// <returns>Результат</returns>
        public static async Task <WebCallResult> MakeCallAsync(string url, IWebProxy webProxy = null)
        {
            using (var call = new WebCall(url, new Cookies(), webProxy))
            {
                var response = await call._request.GetAsync(url);

                return(await call.MakeRequestAsync(response, new Uri(url), webProxy));
            }
        }
コード例 #3
0
        /// <summary>
        /// Выполнить запрос асинхронно.
        /// </summary>
        /// <param name="url"> URL. </param>
        /// <param name="webProxy"> Данные прокси сервера. </param>
        /// <returns> Результат </returns>
        public static async Task <WebCallResult> MakeCallAsync(string url, IWebProxy webProxy = null)
        {
            using (var call = new WebCall(url: url, cookies: new Cookies(), webProxy: webProxy))
            {
                var response = await call._request.GetAsync(requestUri : url);

                return(await call.MakeRequestAsync(response : response, uri : new Uri(uriString: url), webProxy : webProxy)
                       .ConfigureAwait(false));
            }
        }
コード例 #4
0
ファイル: WebCall.Async.cs プロジェクト: GooG2e/vk
        /// <summary>
        /// Post запрос из формы асинхронно.
        /// </summary>
        /// <param name="form">Форма.</param>
        /// <param name="webProxy">Хост.</param>
        /// <returns>Результат</returns>
        public static async Task <WebCallResult> PostAsync(WebForm form, IWebProxy webProxy)
        {
            using (var call = new WebCall(form.ActionUrl, form.Cookies, webProxy, false))
            {
                SpecifyHeadersForFormRequest(form, call);

                var request = await call._request.PostAsync(form.ActionUrl, new FormUrlEncodedContent(GetParameterList(form)));

                return(await call.MakeRequestAsync(request, new Uri(form.ActionUrl), webProxy));
            }
        }
コード例 #5
0
ファイル: WebCall.Async.cs プロジェクト: slay9090/vk
        /// <summary>
        /// Post запрос из формы асинхронно.
        /// </summary>
        /// <param name="form"> Форма. </param>
        /// <param name="webProxy"> Хост. </param>
        /// <returns> Результат </returns>
        public static async Task <WebCallResult> PostAsync(WebForm form, IWebProxy webProxy)
        {
            using (var call = new WebCall(url: form.ActionUrl, cookies: form.Cookies, webProxy: webProxy, allowAutoRedirect: false))
            {
                SpecifyHeadersForFormRequest(form: form, call: call);

                var request = await call._request.PostAsync(requestUri : form.ActionUrl
                                                            , content : new FormUrlEncodedContent(nameValueCollection: form.GetFormFields()));

                return(await call.MakeRequestAsync(response : request, uri : new Uri(uriString: form.ActionUrl), webProxy : webProxy));
            }
        }
コード例 #6
0
ファイル: WebCall.Async.cs プロジェクト: slay9090/vk
        /// <summary>
        /// Выполнить POST запрос асинхронно.
        /// </summary>
        /// <param name="url"> URL. </param>
        /// <param name="parameters"> Параметры запроса. </param>
        /// <param name="webProxy"> Хост. </param>
        /// <returns> Результат </returns>
        public static async Task <WebCallResult> PostCallAsync(string url
                                                               , IEnumerable <KeyValuePair <string, string> > parameters
                                                               , IWebProxy webProxy)
        {
            using (var call = new WebCall(url: url, cookies: new Cookies(), webProxy: webProxy))
            {
                var request = await call._request.PostAsync(requestUri : url
                                                            , content : new FormUrlEncodedContent(nameValueCollection: parameters));

                return(await call.MakeRequestAsync(response : request, uri : new Uri(uriString: url), webProxy : webProxy));
            }
        }
コード例 #7
0
ファイル: WebCall.Async.cs プロジェクト: GooG2e/vk
        /// <summary>
        /// Асинхронная переадресация.
        /// </summary>
        /// <param name="url">URL.</param>
        /// <param name="webProxy">Хост.</param>
        /// <returns>Результат</returns>
        private async Task <WebCallResult> RedirectToAsync(string url, IWebProxy webProxy = null)
        {
            using (var call = new WebCall(url, _result.Cookies, webProxy))
            {
                var headers = call._request.DefaultRequestHeaders;
                headers.Add("Method", "GET");
                headers.Add("ContentType", "text/html");

                var response = await call._request.GetAsync(url);

                return(await call.MakeRequestAsync(response, new Uri(url), webProxy));
            }
        }
コード例 #8
0
        /// <summary>
        /// Асинхронная переадресация.
        /// </summary>
        /// <param name="url"> URL. </param>
        /// <param name="webProxy"> Хост. </param>
        /// <returns> Результат </returns>
        private async Task <WebCallResult> RedirectToAsync(string url, IWebProxy webProxy = null)
        {
            using (var call = new WebCall(url: url, cookies: _result.Cookies, webProxy: webProxy))
            {
                var headers = call._request.DefaultRequestHeaders;
                headers.Add(name: "Method", value: "GET");
                headers.Add(name: "ContentType", value: "text/html");

                var response = await call._request.GetAsync(requestUri : url).ConfigureAwait(false);

                return(await call.MakeRequestAsync(response : response, uri : new Uri(uriString: url), webProxy : webProxy)
                       .ConfigureAwait(false));
            }
        }