in WindowsDevicePortalWrapper/WindowsDevicePortalWrapper/HttpRest/RestPut.cs [26:71]
public async Task<Stream> PutAsync(
Uri uri,
HttpContent body = null)
{
MemoryStream dataStream = null;
WebRequestHandler requestSettings = new WebRequestHandler();
requestSettings.UseDefaultCredentials = false;
requestSettings.Credentials = this.deviceConnection.Credentials;
requestSettings.ServerCertificateValidationCallback = this.ServerCertificateValidation;
using (HttpClient client = new HttpClient(requestSettings))
{
this.ApplyHttpHeaders(client, HttpMethods.Put);
// Send the request
using (HttpResponseMessage response = await client.PutAsync(uri, body).ConfigureAwait(false))
{
if (!response.IsSuccessStatusCode)
{
throw await DevicePortalException.CreateAsync(response);
}
this.RetrieveCsrfToken(response);
if (response.Content != null)
{
using (HttpContent content = response.Content)
{
dataStream = new MemoryStream();
await content.CopyToAsync(dataStream).ConfigureAwait(false);
// Ensure we return with the stream pointed at the origin.
dataStream.Position = 0;
if(dataStream.Length == 0)
{
dataStream = null;
}
}
}
}
}
return dataStream;
}