Está perdiendo oportunidades comerciales:
- Aplicaciones de trading gratuitas
- 8 000+ señales para copiar
- Noticias económicas para analizar los mercados financieros
Registro
Entrada
Usted acepta la política del sitio web y las condiciones de uso
Si no tiene cuenta de usuario, regístrese
Creo que estoy llegando a algo con la autorización.
Así que pregúntale a Roman cómo hacer la autorización en el servidor de IBM conWebRequest, ¡esa es la pregunta clave!
Roman, ¡gracias por el comentario! Creo que también nos las arreglaremos con la autorización.
Ahora sobre algunos parámetros. En la ayuda de WebRequest se indica
[en] Cabeceras de consulta del tipo "clave: valor", separadas por un salto de línea "\r\n".
La propia variable headers es de tipo string
¿Qué quiere decir que la cadena contiene un carácter de salto de línea, es decir, el final de la cadena?
debes tener razón, y la captura de pantalla de postman, donde el par de salida se escribe en la cabecera de la solicitud http se explica de manera diferente )
sospecho que seguimos hablando de lo mismo, pero con palabras diferentes )
No sé qué tan mal escrito está el cartero, qué es y qué tiene que ver con tu problema...
pero el 90% se resuelve leyendo, y es la persona que resuelve el problema la que debe leerlo.
Es algo bastante típico - hay documentación del servicio Rest-API (¿lo has leído por cierto?) , tienes la suerte de que dieron un ejemplo con curl y no hay que parsear otros lenguajes... y tienes que usar WebRequest MT.
El curl se inicia, el protocolo se muestra en la pantalla - qué cabeceras de parámetros se generan y envían, qué se recibe de vuelta, cómo se entiende y dónde se pone.
Y es directamente visible lo que hay que enviar a WebRequest
---
No sé qué tan mal escrito está el cartero, ni qué es, ni qué tiene que ver con tu problema...
pero el 90% se resuelve leyendo, y es la persona que resuelve el problema la que debe leerlo.
Es algo bastante típico - hay documentación del servicio Rest-API (¿lo has leído por cierto?) , tienes la suerte de que dieron un ejemplo con curl y no hay que parsear otros lenguajes... y tienes que usar WebRequest MT.
El curl se inicia, el protocolo se muestra en la pantalla - qué cabeceras de parámetros se generan y envían, qué se recibe de vuelta, cómo se entiende y dónde se pone.
Y es directamente visible lo que hay que enviar a WebRequest
---
leer, leer ) Se están haciendo progresos.
Creo que estoy llegando a algo con la autorización.
Roman, ¡gracias por el comentario! Creo que también nos las arreglaremos con la autorización.
Ahora sobre algunos parámetros. En la ayuda de WebRequest dice
[en] Cabeceras de consulta del tipo "clave: valor", separadas por un salto de línea "\r\n".
La propia variable headers es de tipo string
¿A qué te refieres con que la cadena contiene un carácter de salto de línea?
La cabecera puede contener más de una cadena de clave/valor, por lo que se utiliza un salto de línea.
El doble guión"\N" debe colocarse al final de la cabecera.
Así es como el servidor entiende el final de la cabecera, que es un estándar de http.
Después del doble guión viene el cuerpo de la solicitud o respuesta.
La funciónWebRequest separa estos bloques por comodidad.
Para las cabeceras su propio parámetro, para el cuerpo el suyo propio.
Pero la sintaxis de escribir la solicitud, requiere el cumplimiento de la norma http.
de este sitio webhttps://example-files.online-convert.com/audio/wav/example.wav
descarga este archivo "example.wav"
y después de descargarlo, reproducePlaySound("\Files\\\\ de ejemplo.wav");
-------------------------------------------------
Pero el significado de esta función es el de una función de la que no se puede prescindir. ¡No lo creo!
Bueno, señores, sigamos adelante, ¿quieren?
En primer lugar, simplifiquemos al máximo el código de la propia solicitud. Dejemos sólo una cabecera: la autorización propiamente dicha, que sigue funcionando. En este caso, sin ninguna cabecera adicional, el servidor de IBM nos dará un flujo en formato de audio .ogg. Al diablo, pensamos, hagamos algo que funcione primero. Abandonemos los intentos inútiles de formatear el flujo a wav con cabeceras adicionales y tratemos con .ogg (por cierto, error similar con la sintaxis de WebRequesthttps://www.mql5.com/en/forum/310891#comment_16643324 )
El script se registra en el servidor y se cuelga. Bien, ejecutémoslo en modo de depuración o algo así...
¿Ves, no? )
Soltamos el script del gráfico, pero por alguna razón no deja de ejecutarse por completo, sino que interrumpe la WebRequest sincrónica y continúa, lo que generalmente nos beneficia.
Sigamos adelante. En char result[] tenemos ahora un flujo .ogg y lo escribimos en un archivo.
El archivo obtiene 6Kb también (además, porque la petición de curl o postman con los mismos parámetros devuelve un archivo .ogg de 6Kb, ¡que se reproduce correctamente! Es bueno escuchar la palabra Test ))))
Ahora escribimos toda la matriz de caracteres en el archivo. Especificar especialmente que no debemos medir el tamaño del array, sino tomarWHOLE_ARRAY.
Así es como se ve ahora:
El único problema es que el archivo curl se reproduce bien, pero nuestro archivo, por alguna razón, no.
Veamos el interior de ambos archivos
Archivo descargado por curl en la parte inferior, rellenado desde el flujo de WebRequest en el binario en la parte superior
¿Ves estas manchas 00000089, 00000004 en el archivo superior testmql5.ogg? ))) ¿Es un programa de bonos o qué? ))) ¿De dónde viene todo esto? ))))))))
Resumiendo
1. La sintaxis sigue siendo un misterio para mí. Sólo se ha conseguido autentificar al servidor, los intentos de añadir otras cabeceras han fallado hasta ahora
2. me pregunto si WebRequest recibe el flujo con salpicaduras, o si lo estoy escribiendo en un archivo de forma incorrecta, pero el formato de archivo .ogg obtenido del resultado de la matriz de caracteres mediante el método WebRequest es incorrecto.
Los tomates podridos son bienvenidos.
de este sitio webhttps://example-files.online-convert.com/audio/wav/example.wav
descarga este archivo "example.wav"
y después de descargarlo, reproducePlaySound("\Files\\\\ de ejemplo.wav");
-------------------------------------------------
Pero el significado de esta función es el de una función de la que no se puede prescindir. ¡No creo que tenga ningún sentido!
Alexsandr,
es genial, ¡gracias! Pero el archivo wav debe ser generado por el motor TTS (TextToSpeech)
Alexsandr,
Todo genial, ¡gracias! Pero el archivo wav debe ser generado por el motor TTS (TextToSpeech)
Lo tengo - debería funcionar ???
aquí hay algo similarhttps://cloud.yandex.ru/docs/speechkit/tts/request
...
Resumiendo
1. La sintaxis sigue siendo un misterio para mí. Sólo se ha conseguido autentificar al servidor, los intentos de añadir otras cabeceras han fallado hasta ahora
2. me pregunto si WebRequest recibe el flujo con salpicaduras, o si lo estoy escribiendo en un archivo de forma incorrecta, pero el formato de archivo .ogg obtenido del resultado de la matriz de caracteres mediante el método WebRequest es incorrecto.
Los tomates podridos son bienvenidos.