Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

How to get response stream after uploading a file

I am working on a metro app. I used background uploader to upload file but my question is how I get response value after uploading it. I coded like this:

          BackgroundUploader uploader = new BackgroundUploader();
          uploader.SetRequestHeader("Content-Disposition", "form-data");
          uploader.SetRequestHeader("name", "userfile");
          uploader.SetRequestHeader("filename", App.ViewModel.DeviceId + ".png");
          uploader.SetRequestHeader("Content-Type", "multipart/form-data");

          UploadOperation upload = uploader.CreateUpload(uri, file);
          await upload.StartAsync();
like image 317
mayank.karki Avatar asked Sep 11 '25 11:09

mayank.karki


1 Answers

I came up with the following after noticing there were BytesReceived in my upload progress object.

async private Task<string> GetUploadResponseBody(UploadOperation operation)
{
    string responseBody = string.Empty;
    using (var response = operation.GetResultStreamAt(0))
    {
        uint size = (uint)operation.Progress.BytesReceived;
        IBuffer buffer = new Windows.Storage.Streams.Buffer(size);
        var f = await response.ReadAsync(buffer, size, InputStreamOptions.None);

            using (var dr = DataReader.FromBuffer(f))
            {
                responseBody = dr.ReadString(dr.UnconsumedBufferLength);
            }                
    }
    return responseBody;
}
like image 55
Chadwick Smith Avatar answered Sep 14 '25 01:09

Chadwick Smith