public async Task<Stream> DownloadAsync(Link link, CancellationToken cancellationToken = default(CancellationToken)) { var url = new Uri(link.Href); var method = new HttpMethod(link.Method); var requestMessage = new HttpRequestMessage(method, url); HttpResponseMessage responseMessage = await SendAsync(requestMessage, cancellationToken).ConfigureAwait(false); return await responseMessage.Content.ReadAsStreamAsync().ConfigureAwait(false); }
public Task UploadAsync(Link link, Stream file, CancellationToken cancellationToken = default(CancellationToken)) { var url = new Uri(link.Href); var method = new HttpMethod(link.Method); var content = new StreamContent(file); var requestMessage = new HttpRequestMessage(method, url) { Content = content }; return SendAsync(requestMessage, cancellationToken); }
public async Task<Operation> GetOperationStatus(Link link, CancellationToken cancellationToken) { var url = new Uri(link.Href); var method = new HttpMethod(link.Method); var requestMessage = new HttpRequestMessage(method, url); HttpResponseMessage responseMessage = await SendAsync(requestMessage, cancellationToken); return await responseMessage.Content.ReadAsAsync<Operation>(cancellationToken); }
public async Task<Operation> GetOperationStatus(Link link, CancellationToken cancellationToken = default(CancellationToken)) { var url = new Uri(link.Href); var method = new HttpMethod(link.Method); var requestMessage = new HttpRequestMessage(method, url); HttpResponseMessage responseMessage = await SendAsync(requestMessage, cancellationToken).ConfigureAwait(false); Operation operation = await ReadResponse<Operation>(responseMessage, cancellationToken).ConfigureAwait(false); if (operation == null) { throw new Exception("Unexpected empty result."); } return operation; }
public async Task UploadTest() { var link = new Link { Href = "https://uploader1d.dst.yandex.net/upload-target/", Method = "PUT", Templated = false }; var httpClientTest = new TestHttpClient( methodName: link.Method, url: link.Href, httpStatusCode: HttpStatusCode.Created, result: @""); var diskClient = new DiskHttpApi(TestHttpClient.BaseUrl, TestHttpClient.ApiKey, logSaver: null, httpClient: httpClientTest); await diskClient.Files.UploadAsync(link, new MemoryStream(), CancellationToken.None).ConfigureAwait(false); }
public async Task DownloadTest() { var link = new Link { Href = "https://downloader.dst.yandex.ru/disk/", Method = "GET", Templated = false }; var httpClientTest = new TestHttpClient( methodName: link.Method, url: link.Href, httpStatusCode: HttpStatusCode.Created, result: @"Test file content"); var diskClient = new DiskHttpApi(TestHttpClient.BaseUrl, TestHttpClient.ApiKey, logSaver: null, httpClient: httpClientTest); Stream stream = await diskClient.Files.DownloadAsync(link, CancellationToken.None).ConfigureAwait(false); var content = new StreamReader(stream).ReadToEnd(); Assert.AreEqual(@"Test file content", content); }