大家好,这是上一篇文章中关于将音频文件统一发送到在线 api 的一个快速跟进问题。
我认为(尽管可能是错误的)我的问题是 form.AddBinaryData 行上的正确语法。
api 的示例 curl 代码是:
$ curl -XPOST 'https://api.wit.ai/speech?v=20170307' \
-i -L \
-H "Authorization: Bearer $TOKEN" \
-H "Content-Type: audio/wav" \
--data-binary "@sample.wav"
我正在使用的 C# 代码是:
IEnumerator GetJSONText2(){
string file = "Assets/sample.wav";
FileStream filestream = new FileStream (file, FileMode.Open, FileAccess.Read);
BinaryReader filereader = new BinaryReader (filestream);
byte[] BA_AudioFile = filereader.ReadBytes ((Int32)filestream.Length);
WWWForm form = new WWWForm();
form.AddField("Authorization", "Bearer " + token);
form.AddField("Content-Type", "audio/wav");
//form.AddField("Content-Length", BA_AudioFile.Length);
//form.AddBinaryData ("Sample",BA_AudioFile, "sample.wav");
//form.AddBinaryData ("@sample",BA_AudioFile, "sample.wav", "audio/x-wav");
form.AddBinaryData ("Sample",BA_AudioFile);
filestream.Close ();
filereader.Close ();
WWW www = new WWW(url, form);
yield return www;
if (!string.IsNullOrEmpty(www.error)) {
print(www.error);
}else {
print("Finished Uploading");
print (www.text);
Handle (www.text);
}
}
我收到了 400 错误的请求响应。我感觉如此接近却又如此遥远。如您所见,我一直在尝试 AddBinaryData 字段的不同组合,但这导致我现在更加怀疑自己。
感谢您花时间阅读本文。