你好,亲爱的Stack Overflow网友们。 自从昨天以来,我就一直在浏览SO,因为我有一个问题。 我有一个UWP客户端和ASP.NET Core Web Api。我想要将流发送到我的Web API,但实际上这比我想象的更难。
我有一个类,只有一个属性。如下所示,这个属性是Stream
:
public class UploadData
{
public Stream InputData { get; set; }
}
这是我的Web Api代码:
// POST api/values
[HttpPost]
public string Post(UploadData data)
{
return "test";
}
我尝试从消息正文中读取流,但结果仍然相同。
我可以调用POST方法中的UploadData
,但我的InputData
始终为null
。
这是我 UWP 的 POST 请求代码。
private async void PostStreamButton_OnClick(object sender, RoutedEventArgs e)
{
using (var client = new HttpClient())
{
var dummyBuffer = new UnicodeEncoding().GetBytes("this is dummy stream");
var dummyStream = new MemoryStream(dummyBuffer).AsRandomAccessStream().AsStream();
var requestContent = new MultipartFormDataContent();
var inputData = new StreamContent(dummyStream);
inputData.Headers.ContentType = new MediaTypeHeaderValue("application/octet-stream");
requestContent.Headers.ContentType = new MediaTypeHeaderValue("application/json");
requestContent.Add(inputData, "inputData");
HttpResponseMessage response = client.PostAsync("url", inputData).Result;
}
}
我已经尝试了多种内容类型,但似乎没有一种起作用,并且我不知道原因。真的很感激所有的帮助。
SerializeToStreamAsync
方法。 - Nkosi