internal async Task Upload(Action <long, long> onProgress) { MultipartFormDataContent dataContent = new MultipartFormDataContent(); dataContent.Add(new StringContent(key), "key"); dataContent.Add(new StringContent(token), "token"); dataContent.Add(new ByteArrayContent(data), "file"); LCProgressableStreamContent content = new LCProgressableStreamContent(dataContent, onProgress); HttpRequestMessage request = new HttpRequestMessage { RequestUri = new Uri(uploadUrl), Method = HttpMethod.Post, Content = content }; HttpClient client = new HttpClient(); HttpUtils.PrintRequest(client, request); HttpResponseMessage response = await client.SendAsync(request, HttpCompletionOption.ResponseHeadersRead); request.Dispose(); string resultString = await response.Content.ReadAsStringAsync(); response.Dispose(); HttpUtils.PrintResponse(response, resultString); HttpStatusCode statusCode = response.StatusCode; }
internal async Task Upload(Action <long, long> onProgress) { LCProgressableStreamContent content = new LCProgressableStreamContent(new StreamContent(stream), onProgress); HttpRequestMessage request = new HttpRequestMessage { RequestUri = new Uri(uploadUrl), Method = HttpMethod.Put, Content = content }; HttpClient client = new HttpClient(); request.Headers.CacheControl = new CacheControlHeaderValue { Public = true, MaxAge = TimeSpan.FromMilliseconds(31536000) }; request.Content.Headers.ContentType = new MediaTypeHeaderValue(mimeType); LCHttpUtils.PrintRequest(client, request); HttpResponseMessage response = await client.SendAsync(request, HttpCompletionOption.ResponseHeadersRead); request.Dispose(); string resultString = await response.Content.ReadAsStringAsync(); response.Dispose(); LCHttpUtils.PrintResponse(response, resultString); HttpStatusCode statusCode = response.StatusCode; }