|
|
Регистрация Восстановить пароль |
Повторная активизация e-mail |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
Опции темы | Поиск в этой теме |
02.10.2014, 20:57 | #1 |
Пользователь
Регистрация: 01.10.2009
Сообщений: 38
|
post запрос к yandex speech
Здравствуйте, пытаюсь отправить wav файл на распознавание в яндекс, но получаю ошибку 400 invalid character in header.
HTTP/1.0 400 Bad Request Access-Control-Allow-Origin: * Connection: close Content-Length: 30 Content-Type: text/html Date: Thu, 02 Oct 2014 20:51:50 MSK Server: YaVoiceProxy2 X-YaReqFinish: 1412268710.823475 X-YaRequestId: 67dd3d12-4a54-11e4-9ede-ca3799e7ec61 invalid character in header! Можете сказать че не так? Код:
|
02.10.2014, 22:50 | #2 |
Форумчанин
Регистрация: 18.01.2012
Сообщений: 975
|
И вам доброго времени суток! А почему именно сокет? HttpWebRequest чем вам не угодил?
Благодарить в репутацию. Проклинать — туда же
|
03.10.2014, 06:21 | #3 |
Пользователь
Регистрация: 01.10.2009
Сообщений: 38
|
С ним я пробовал, тоже самое получал, тут хотя бы смог прочитать про invalid character in header, там просто исключение срабатывало и ошибка 400 писалась=(
|
03.10.2014, 17:08 | #4 |
Старожил
Регистрация: 06.08.2009
Сообщений: 2,992
|
Попробуйте с помощью Fiddler отправлять копипасту примеров из какой-нибудь справки.
Проверьте, везде ли у вас нужный перенос строки, попробуйте /n и /r/n. |
03.10.2014, 18:35 | #5 |
Пользователь
Регистрация: 01.10.2009
Сообщений: 38
|
Заработал HttpWebRequest
Вот теперь работает
public static string PostMethod(byte[] bytes) { string postUrl = "https://asr.yandex.net/asr_xml?"+ "uuid=01ae13cb744628b58fb536d496daa 1e6&" + "key=ключ&"+ "topic=queries"; HttpWebRequest request = (HttpWebRequest)WebRequest.Create(p ostUrl); request.Method = "POST"; request.Host = "asr.yandex.net"; request.SendChunked = true; request.UserAgent = "Oleg"; request.ContentType = "audio/x-wav"; request.ContentLength = bytes.Length; using (var newStream = request.GetRequestStream()) { newStream.Write(bytes, 0, bytes.Length); } HttpWebResponse response = (HttpWebResponse)request.GetRespons e(); string responseToString=""; if (response != null) { var strreader = new StreamReader(response.GetResponseSt ream(), Encoding.UTF8); responseToString = strreader.ReadToEnd(); } int index = responseToString.IndexOf("<variant confidence=\"1\">"); responseToString = responseToString.Substring(index + 24, responseToString.Length - index - 24); int index2 = responseToString.IndexOf("</variant>"); responseToString = responseToString.Substring(0, index2); return responseToString; } Почему не работала раньше эта функция я так и не понял, сравнивал со старым вариантом построчно, только входные параметры поменял. Магия. Хотя скорость распознавания оставляет желать лучшего, бывает доходит до 10 секунд. Всем спасибо. |
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Запрос к Yandex переводчику из программы на c# | rmv240899 | Общие вопросы .NET | 1 | 20.12.2012 05:27 |
Post запрос | STALERUM | Работа с сетью в Delphi | 1 | 16.09.2012 21:10 |
Post запрос | Arsenx777 | PHP | 0 | 19.04.2012 19:35 |
POST запрос | bunukar | Работа с сетью в Delphi | 6 | 27.11.2011 19:26 |
Post запрос | Arsenx777 | Работа с сетью в Delphi | 4 | 18.08.2011 19:56 |