C# 使用post从HTTP请求获取数据时出错
我按照以下说明:从站点获取音频文件:(此站点允许我们输入英语或日语单词/短语/句子并生成音频文件,类似于回发后HTML代码第129行的“/发音/音频?文件名=143113309.002.mp3&file类型=mp3”) 但是,我从自己的应用程序中获得的音频文件与从本网站生成的音频文件不同。从本网站生成的音频文件(mp3)可以在www.tudienabc.com/prounations/(例如:www.tudienabc.com/prounations/audio?file_name=143141268.9947.mp3&file_type=mp3)上播放,但从我的应用程序生成的音频文件不能播放(例如:www.tudienabc.com/prounations/audio?file_name=143141475.4908.mp3&file_type=mp3) 那么,怎么了?如何获得准确的音频文件 这是我的密码:C# 使用post从HTTP请求获取数据时出错,c#,http,post,C#,Http,Post,我按照以下说明:从站点获取音频文件:(此站点允许我们输入英语或日语单词/短语/句子并生成音频文件,类似于回发后HTML代码第129行的“/发音/音频?文件名=143113309.002.mp3&file类型=mp3”) 但是,我从自己的应用程序中获得的音频文件与从本网站生成的音频文件不同。从本网站生成的音频文件(mp3)可以在www.tudienabc.com/prounations/(例如:www.tudienabc.com/prounations/audio?file_name=143141
var request = (HttpWebRequest)WebRequest.Create("http://www.tudienabc.com/phat-am-tieng-nhat");
var postData = "_method=POST&data[Pronun][text]=hello&data[Pronun][type]=3";
var data = Encoding.ASCII.GetBytes(postData);
request.Method = "POST";
request.ContentType = "application/x-www-form-urlencoded";
request.ContentLength = data.Length;
using (var stream = request.GetRequestStream())
{
stream.Write(data, 0, data.Length);
}
var response = (HttpWebResponse)request.GetResponse();
var responseString = new StreamReader(response.GetResponseStream()).ReadToEnd();
int m = responseString.IndexOf("pronunciations/audio?file_name=")+"pronunciations/audio?file_name=".Length;
int n = responseString.IndexOf("&file_type=mp3");
string filename = responseString.Substring(m, n - m);
return filename;
谢谢,他们的网站使用ECMAScript处理音频
<script>
var wait = new waitGenerateAudio(
'#progress_audio_placeholder',
'/pronunciations/checkFinish/1431151184.739',
'aGVsbG8gZnlyeWU=',
'/pronunciations/audio?file_name=1431151184.739.mp3&file_type=mp3',
'T?o file l?i'
);
</script>
var wait=new waitGenerateAudio(
“#进度(音频)占位符”,
“/发音/checkFinish/143151184.739”,
“aGVsbG8gZnlyeWU=”,
“/发音/音频?文件名=143151184.739.mp3&;文件类型=mp3”,
“T?o文件l?我”
);
您需要能够处理要创建的音频文件的JavaScript
结帐
或
用于使用无头浏览器
我建议寻找一个更通用的文本到音频库。
向我们展示您使用的代码。这不是“您的”代码,而是执行同一任务的几种方法。张贴“您的”代码,以便我们可以看到它有什么问题。与其试着猜测你选择了哪个选项来复制不同答案的粘贴,还不如发现你在编辑时不小心删除了一个逗号。对不起,fyrye。这是我第一次将问题发布到stackoverflow,所以我遇到了一些麻烦。当我按Enter键进入新行时,它会发布我的评论。:)我用我的代码编辑了我的问题,因为注释不允许长文本。谢谢,谢谢。但是根据你的建议(stackoverflow.com/questions/516027/c-sharp-httpwebrequest-and-javascript):我的代码:wb.Navigate(“,null,postdata,null);但是循环while(wb.ReadyState!=WebBrowserReadyState.Complete){Application.DoEvents();}无法完成。因此,我无法获得响应数据。有了谷歌文本到语音API,它不能返回音频跟随性别(男性,女性),它不是我需要的本地网站。你有办法解决我的问题吗?谢谢