上传文件后如何获取响应流

may*_*rki 3 c# microsoft-metro

我正在开发一个地铁应用程序.我使用后台上传器上传文件,但我的问题是如何在上传后获得响应值.我这样编码:

          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();
Run Code Online (Sandbox Code Playgroud)

小智 7

在注意到我的上传进度对象中有BytesReceived后,我想出了以下内容.

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;
}
Run Code Online (Sandbox Code Playgroud)