[ad_1]
HttpResponseMessage で HTTP エラー 415 Unsupported Media Type が発生します。
サーバー側のコードを機能させるにはどうすればよいですか?
HTTPClient は、次のようにバイト配列データをポストするために使用されます…
using(HttpClient c=new HttpClient()
{
c.DefaultRequestHeader.Accept.Add(new MediaTypeWithQualityHeaderValue(“application/octet-stream)
バイト[] データ = 新しいバイト { 0x00, 0x01, 0x02… };
HttpResponseMessage r=await c.PostAsync(“http://abc.com/api/File/Filename”, new ByteArrayContent(Data);
if(r.IssuccessStatusCode) は true を返します。
false を返します。
}
サーバー側(MVC/Razor)は次のようにバイト配列を受け取ります
[HttpPost(“{Filename}”)]
public async Task
{
MemoryStream ms=new MemoryStream((int)Request.Body.Length);
Request.Body.CopyToAsync(ms); を待ちます。
バイト[] b=ms.ToArray(); ms.close();
File.WriteAllBytesAsync(“Data.bin”, b);
b.長さを返します。
}
私が試したこと:
Windows 10 Pro ワークステーションで実行される Visual Studio 2017 でコンパイル
解決策 1
これと同じくらい簡単に実行できます
[HttpPost] public void Post(byte[] bytes) { //your code }
Web APIはバイト配列を入力パラメータとして適切に処理します
[ad_2]
コメント