WebRequest を使用してデータとファイルを送信したい。
byte[] fileStream = File.ReadAllBytes(path);
ServicePointManager.ServerCertificateValidationCallback = new RemoteCertificateValidationCallback(delegate { return true; });
WebRequest request = WebRequest.Create(url);
request.ContentType = "application/json";
request.Method = "POST";
request.Credentials = new NetworkCredential("name", "pw");
Stream dataStream = request.GetRequestStream();
dataStream.Write(Encoding.UTF8.GetBytes(data), 0, Encoding.UTF8.GetBytes(data).Length);
//dataStream.Write(fileStream, 0, fileStream.Length);
dataStream.Write(fileStream, 0, fileStream.Length); //CAUSES A CRASH
dataStream.Close();
WebResponse response = request.GetResponse();
「dataStream.Write(fileStream, 0, fileStream.Length);」を含めると、なぜ失敗するのかわかりません。内部エラーが発生したと言って、サーバーがストリームの受け入れに失敗する行。サーバーが必要とするデータを表示する CURL コマンドが動作しています。
curl -k -X POST -u name:pw -H "Content-type: application/json"
-H 'Accept:application/json''url'
-d'{parameters}'
--data-binary @file.wav
上記の行を除外すると、コマンドは期待どおりに機能し、入力ファイルがないことがわかります。だから、file.wavに何か問題があるのではないかと思います