400错误请求 - Unity wwwform二进制数据与音频文件

时间:2017-12-05 13:47:28

标签: c# file unity3d wit-ai

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

感谢您抽出时间阅读本文。

0 个答案:

没有答案