/// <summary>
        /// 新增同资源下多链接下载
        /// </summary>
        /// <param name="uris">相同资源下的HTTP/FTP/SFTP/Magnet下载链接集合,资源不相同则会失败</param>
        /// <param name="split">下载所有链接的总连接数</param>
        /// <param name="proxy">代理地址</param>
        /// <param name="position">下载队列位置,超过队列长度则排到队尾</param>
        /// <returns>下载请求的GID</returns>
        public async Task <string> AddUri(IEnumerable <string> uris, int?split = null, string proxy = null, int?position = null)
        {
            var option = split.HasValue || !string.IsNullOrWhiteSpace(proxy) ? new Options(split, proxy) : null;
            var res    = new AddUriResponse(await _client.SendRequestAsync(new AddUriRequest
            {
                Uris     = uris.ToList(),
                Options  = option,
                Position = position
            }));

            return(res?.GID);
        }
        /// <summary>
        /// 新增同资源下多链接下载
        /// </summary>
        /// <param name="uris">相同资源下的HTTP/FTP/SFTP/Magnet下载链接集合,资源不相同则会失败</param>
        /// <param name="split">下载所有链接的总连接数</param>
        /// <param name="proxy">代理地址</param>
        /// <param name="position">下载队列位置,超过队列长度则排到队尾</param>
        /// <returns>下载请求的GID</returns>
        public async Task <string> AddUri(IEnumerable <string> uris, int?split = null, string proxy = null, int?position = null, string directory = null, ulong?maxSpeed = null)
        {
            var option = split.HasValue || !string.IsNullOrWhiteSpace(proxy)
                ? new Options
            {
                Split            = split,
                HttpProxy        = proxy,
                Directory        = directory,
                MaxDownloadSpeed = maxSpeed
            }
                : position.HasValue
                    ? new Options()
                    : null;
            var       res = new AddUriResponse(await _client.SendRequestAsync(new AddUriRequest
            {
                Uris     = uris.ToList(),
                Options  = option,
                Position = position
            }));

            return(res?.GID);
        }