/// <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)); } }
/// <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)); } }
/// <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)); } }
/// <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)); } }
/// <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)); } }
/// <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)); } }
/// <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)); } }
/// <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)); } }