Пример #1
0
        /// <summary>
        /// Инициализирует новый экземпляр класса <see cref="MultipartContent"/>.
        /// </summary>
        /// <param name="boundary">Граница для отделения составных частей содержимого.</param>
        /// <exception cref="System.ArgumentNullException">Значение параметра <paramref name="boundary"/> равно <see langword="null"/>.</exception>
        /// <exception cref="System.ArgumentException">Значение параметра <paramref name="boundary"/> является пустой строкой.</exception>
        /// <exception cref="System.ArgumentOutOfRangeException">Значение параметра <paramref name="boundary"/> имеет длину более 70 символов.</exception>
        // ReSharper disable once MemberCanBePrivate.Global
        public MultipartContent(string boundary)
        {
            #region Проверка параметров

            if (boundary == null)
            {
                throw new ArgumentNullException(nameof(boundary));
            }

            if (boundary.Length == 0)
            {
                throw ExceptionHelper.EmptyString(nameof(boundary));
            }

            if (boundary.Length > 70)
            {
                throw ExceptionHelper.CanNotBeGreater(nameof(boundary), 70);
            }

            #endregion

            _boundary = boundary;

            MimeContentType = $"multipart/form-data; boundary={_boundary}";
        }
Пример #2
0
        /// <summary>
        /// Инициализирует новый экземпляр класса <see cref="BytesContent"/>.
        /// </summary>
        /// <param name="content">Содержимое тела запроса.</param>
        /// <param name="offset">Смещение в байтах для контента.</param>
        /// <param name="count">Число байтов отправляемых из контента.</param>
        /// <exception cref="System.ArgumentNullException">Значение параметра <paramref name="content"/> равно <see langword="null"/>.</exception>
        /// <exception cref="System.ArgumentOutOfRangeException">
        /// Значение параметра <paramref name="offset"/> меньше 0.
        /// -или-
        /// Значение параметра <paramref name="offset"/> больше длины содержимого.
        /// -или-
        /// Значение параметра <paramref name="count"/> меньше 0.
        /// -или-
        /// Значение параметра <paramref name="count"/> больше (длина содержимого - смещение).</exception>
        /// <remarks>По умолчанию используется тип контента - 'application/octet-stream'.</remarks>
        // ReSharper disable once MemberCanBePrivate.Global
        public BytesContent(byte[] content, int offset, int count)
        {
            #region Проверка параметров

            if (content == null)
            {
                throw new ArgumentNullException(nameof(content));
            }

            if (offset < 0)
            {
                throw ExceptionHelper.CanNotBeLess(nameof(offset), 0);
            }

            if (offset > content.Length)
            {
                throw ExceptionHelper.CanNotBeGreater(nameof(offset), content.Length);
            }

            if (count < 0)
            {
                throw ExceptionHelper.CanNotBeLess(nameof(count), 0);
            }

            if (count > content.Length - offset)
            {
                throw ExceptionHelper.CanNotBeGreater(nameof(count), content.Length - offset);
            }

            #endregion

            Content = content;
            Offset  = offset;
            Count   = count;

            MimeContentType = "application/octet-stream";
        }