我寫了我的第一個ASP.NET Core Web API服務器。路由正在工作,並且正在發送/接收。我想發送一個原始的Byte數組來響應Get,我想繞過任何序列化(以及我的WPF客戶端中的任何反序列化)。舉例來說,在我的服務器:如何使用ASP.NET Core Web API發送/接收原始字節數組?
[HttpGet("api/data")]
public Byte[] GetData()
{
Byte[] data = new Byte[]{1, 2, 3, 4, 5};
return data; // No JSON, BSON or anything else...just my array. Is it done this way?
}
在我的WPF客戶端,我想用HttpClient的類來接收陣列 - 不需要反序列化:
// Assume an instantiated and initialized HttpClient object called "httpCLient"
HttpResponseMessage response = httpClient.GetAsync("/api/data").Result;
// Now what?
我已經走遍了互聯網,但我還沒有找到一個這樣的例子,我一直無法自己弄清楚。請有人告訴我這是怎麼完成的?
更新:我相信客戶端的Byte []檢索可以通過「HttpContent.ReadAsByteArrayAsync()」來完成,如下所示:Convert HttpContent into byte[]。然而,我仍然不確定如何從ASP.NET Core Web API端發送原始(非序列化的)Byte []。
可能重複的[從HttpResponseMessage獲取內容/消息](http://stackoverflow.com/questions/15936180/getting-content-message-from-httpresponsemessage) –
感謝科林。我認爲在客戶端,我可以通過以下方式檢索字節[]: 字節[] data = httpResponseMessage.Content.ReadAsByteArrayAsync()。 但是,我無法測試這個,因爲我仍然不確定如何從服務器發送原始字節[]。 – LKeene
http://stackoverflow.com/questions/23884182/how-to-get-byte-array-properly-from-an-web-api-method-in-c檢查Luaan的答案。使用ByteArrayContent –