예제 #1
0
파일: HttpClient.cs 프로젝트: vitaut7/xNet
        /// <summary>
        /// Отправляет POST-запрос с Multipart/form данными. Загружает тело сообщения и возвращает его в виде текста.
        /// </summary>
        /// <param name="address">Адрес интернет-ресурса.</param>
        /// <param name="multipartData">Multipart/form данные, отправляемые HTTP-серверу.</param>
        /// <param name="cookies">Кукисы, отправляемые HTTP-серверу, или значение <see langword="null"/>.</param>
        /// <param name="proxy">Прокси-клиент, используемый для запроса, или значение <see langword="null"/>.</param>
        /// <returns>Если тело сообщения отсутствует, то будет возвращена пустая строка.</returns>
        /// <exception cref="System.ArgumentNullException">Значение параметра <paramref name="address"/> равно <see langword="null"/>.</exception>
        /// <exception cref="System.ArgumentException">Значение параметра <paramref name="address"/> не является абсолютным URI.</exception>
        /// <exception cref="System.ArgumentNullException">Значение параметра <paramref name="multipartData"/> равно <see langword="null"/>.</exception>
        /// <exception cref="xNet.Net.HttpException">Ошибка при работе с HTTP-протоколом.</exception>
        /// <exception cref="xNet.Net.ProxyException">Ошибка при работе с прокси-сервером.</exception>
        public static string Post(Uri address, MultipartDataCollection multipartData, CookieDictionary cookies = null, ProxyClient proxy = null)
        {
            using (HttpRequest request = new HttpRequest())
            {
                if (cookies == null)
                {
                    request.Cookies = new CookieDictionary();
                }
                else
                {
                    request.Cookies = cookies;
                }

                request.Proxy = proxy;
                request.KeepAlive = false;

                if (string.IsNullOrEmpty(HttpRequest.GlobalUserAgent))
                {
                    request.UserAgent = HttpHelper.RandomUserAgent();
                }

                return request.Post(address, multipartData).ToText();
            }
        }
예제 #2
0
 /// <summary>
 /// Инициализирует новый экземпляр класса <see cref="StreamHttpContent"/>.
 /// </summary>
 /// <param name="multipartData">Multipart данные контента.</param>
 public MultipartHttpContent(MultipartDataCollection multipartData)
 {
     _multipartData = multipartData;
 }