嗨,大家好,这是上一篇文章中关于将音频文件发送到在线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字段的不同组合,但这导致我现在更加怀疑自己。
感谢您抽出时间阅读本文。