Ti stai perdendo delle opportunità di trading:
- App di trading gratuite
- Oltre 8.000 segnali per il copy trading
- Notizie economiche per esplorare i mercati finanziari
Registrazione
Accedi
Accetti la politica del sito e le condizioni d’uso
Se non hai un account, registrati
Credo di aver trovato qualcosa con l'autorizzazione.
Quindi chiedete a Roman come fare l'autorizzazione sul server IBM conWebRequest, questa è la domanda chiave!
Roman, grazie per il commento! Penso che ce la faremo anche con l'autorizzazione.
Ora alcuni parametri. Nell'aiuto su WebRequest è indicato
[intestazioni di query del tipo "chiave: valore", separate da un'interruzione di riga "\r\n".
La variabile headers stessa è di tipo stringa
Cosa vuol dire che la stringa contiene un carattere di interruzione di riga, cioè la fine della stringa?
devi avere ragione, e lo screenshot di postman, dove la coppia di output è scritta nell'intestazione della richiesta http è spiegata diversamente )
Ho il sospetto che stiamo ancora parlando della stessa cosa, ma con parole diverse )
Non so quanto male sia scritto postino, cosa sia, e cosa abbia a che fare con il tuo problema...
ma il 90% si risolve leggendo, e sta alla persona che risolve il problema leggere.
È una cosa abbastanza tipica - c'è la documentazione del servizio Rest-API (l'hai letta a proposito??), sei fortunato che hanno dato un esempio con curl e non c'è bisogno di analizzare altre lingue... e devi usare WebRequest MT.
Il curl inizia, il protocollo viene mostrato sullo schermo - quali intestazioni di parametri vengono generate e inviate, cosa viene ricevuto indietro, come viene compreso e dove viene messo.
Ed è direttamente visibile cosa inviare a WebRequest
---
Non so quanto male sia scritto il postino, cosa sia, o cosa abbia a che fare con il tuo problema...
ma il 90% si risolve leggendo, e sta alla persona che risolve il problema leggere.
È una cosa abbastanza tipica - c'è la documentazione del servizio Rest-API (l'hai letta a proposito??), sei fortunato che hanno dato un esempio con curl e non c'è bisogno di analizzare altre lingue... e devi usare WebRequest MT.
Il curl inizia, il protocollo viene mostrato sullo schermo - quali intestazioni di parametri vengono generate e inviate, cosa viene ricevuto indietro, come viene compreso e dove viene messo.
Ed è direttamente visibile cosa inviare a WebRequest
---
leggere, leggere ) Si sta cercando di capire e si stanno facendo progressi.
Credo di aver trovato qualcosa con l'autorizzazione.
Roman, grazie per il commento! Penso che ce la faremo anche con l'autorizzazione.
Ora alcuni parametri. Nell'aiuto su WebRequest dice
[intestazioni di query del tipo "chiave: valore", separate da un'interruzione di riga "\r\n".
La variabile headers stessa è di tipo stringa
Cosa vuol dire che la stringa contiene un carattere di interruzione di linea, cioè un carattere di interruzione di linea?
L'intestazione può contenere più di una stringa chiave/valore, quindi viene usata un'interruzione di riga.
Il doppio trattino"\r\n\r\n" deve essere messo alla fine dell'intestazione.
Questo è il modo in cui il server capisce la fine dell'intestazione, che è uno standard http.
Dopo il doppio trattino viene il corpo della richiesta o della risposta.
La funzioneWebRequest separa questi blocchi per comodità.
Per le intestazioni il proprio parametro, per il corpo il proprio.
Ma la sintassi di scrittura della richiesta, richiede il rispetto dello standard http.
da questo sitohttps://example-files.online-convert.com/audio/wav/example.wav
scarica questo file "example.wav".
e dopo averlo scaricato, suonaPlaySound("\files\example.wav");
-------------------------------------------------
Ma il significato di questa funzione non è molto chiaro. Non credo proprio!
Bene, signori, andiamo avanti, va bene?
Prima di tutto, semplifichiamo il più possibile il codice della richiesta stessa. Lasciamo solo un'intestazione - l'autorizzazione stessa, che funziona ancora! In questo caso, senza alcuna intestazione aggiuntiva, il server IBM ci darà un flusso nel formato audio .ogg. Al diavolo, pensiamo, facciamo funzionare qualcosa prima. Abbandoniamo i futili tentativi di formattare il flusso in wav con intestazioni aggiuntive e occupiamoci di .ogg (a proposito, errore simile con la sintassi di WebRequesthttps://www.mql5.com/en/forum/310891#comment_16643324 )
Lo script viene registrato nel server e si blocca. Ok, eseguiamolo in modalità debug o qualcosa del genere...
vedere, no? )
Eliminiamo lo script dal grafico, ma per qualche motivo non smette di essere eseguito completamente, semplicemente interrompe la WebRequest sincrona e continua, il che è generalmente a nostro vantaggio.
Andiamo avanti. In char result[] abbiamo ora un flusso .ogg e lo scriviamo in un file.
Anche il file ottiene 6Kb (anche perché la query di curl o postman con gli stessi parametri restituisce un file .ogg di 6Kb, che suona correttamente! È bello sentire la parola Test ))))
Ora scriviamo tutto l'array di char nel file. Specialmente specificare che non dovremmo misurare la dimensione dell'array, ma prendereWHOLE_ARRAY.
Ecco come appare ora:
L'unico problema è che il file curl funziona bene, ma il nostro file, per qualche motivo, no.
Guardiamo all'interno di entrambi i file
File scaricato da curl in basso, riempito dal flusso WebRequest in binario in alto
Vedi questi blob 00000089, 00000004 nel file superiore testmql5.ogg? ))) È un programma di bonus o cosa? ))) Da dove viene tutto questo ))))))))
Riassumendo
1. La sintassi è ancora un mistero per me. È riuscito solo ad autenticarsi al server, i tentativi di aggiungere altre intestazioni sono falliti finora
2. mi chiedo se WebRequest riceve il flusso con spruzzi, o lo sto scrivendo su un file in modo errato, ma il formato del file .ogg ottenuto dal risultato di char array usando il metodo WebRequest non è corretto.
Pomodori marci benvenuti!
da questo sitohttps://example-files.online-convert.com/audio/wav/example.wav
scarica questo file "example.wav".
e dopo averlo scaricato, suonaPlaySound("\files\example.wav");
-------------------------------------------------
Ma il significato di questa funzione non è molto chiaro. Non credo che abbia alcun senso!
Alexsandr,
è fantastico, grazie! Ma il file wav dovrebbe essere generato dal motore TTS (TextToSpeech)
Alexsandr,
Tutto fantastico, grazie! Ma il file wav dovrebbe essere generato dal motore TTS (TextToSpeech)
Ce l'ho, dovrebbe funzionare, ma non è possibile.
Ecco qualcosa di similehttps://cloud.yandex.ru/docs/speechkit/tts/request
...
Riassumendo
1. La sintassi è ancora un mistero per me. È riuscito solo ad autenticarsi al server, i tentativi di aggiungere altre intestazioni sono falliti finora
2. mi chiedo se WebRequest riceve il flusso con spruzzi, o lo sto scrivendo su un file in modo errato, ma il formato del file .ogg ottenuto dal risultato di char array usando il metodo WebRequest non è corretto.
Pomodori marci benvenuti!