Novo artigo Usando o WinInet em MQL5. Parte 2: Solicitações POST e arquivos é publicado:
Autor: Alex Sergeev
Olá, Alex,
Bom artigo - tenho um pedido para a "Parte 3": Comunicação com o cliente XML-RPC (e com o servidor, se possível).
Parabéns
Ao executar a instrução a seguir, o sistema trava . Como isso deve ser resolvido?
hConnect=InternetConnectW(hSession, aHost, aPort, aUser, aPass, aService, 0, 0);
Error: Violação de acesso lida para 0x0000000000001F94 em '......ex5'
Há um pequeno erro na linha 161. Essa linha deveria ser:
else StringToCharArray(req.stData, data, 0, StringLen(req.stData));
Isso ocorre porque o terminal 0 é copiado para a matriz e o HttpSendRequestW envia o terminal 0 (como um caractere extra) para o último valor da variável post. Por exemplo, se seus dados forem:
var1=value1&var2=value2
Você terá em sua página da Web a var1 associada ao valor1 e a var2 associada ao valor2\0.
Esse é um ótimo artigo. Obrigado por compartilhá-lo.
Meus cumprimentos
O erro de violação de acesso foi resolvido, mas as solicitações POST não estão funcionando agora. Aparentemente, os dados em uma matriz uchar não são enviados corretamente para a função dll.
Por que ninguém se importa com esse problema?
Também tive um erro de violação de acesso com essa classe de objeto. O problema estava no uso de '0' como um ponteiro NULL na chamada da função HttpOpenRequestW. Tente substituir a chamada
--- hRequest=HttpOpenRequestW(hConnect, req.stVerb, req.stObject, Vers, nill, 0, INTERNET_FLAG_KEEP_CONNECTION|INTERNET_FLAG_RELOAD|INTERNET_FLAG_PRAGMA_NOCACHE, 0);
por uma chamada:
+++ hRequest=HttpOpenRequestW(hConnect, req.stVerb, req.stObject, Vers, NULL, NULL , INTERNET_FLAG_KEEP_CONNECTION|INTERNET_FLAG_RELOAD|INTERNET_FLAG_PRAGMA_NOCACHE, 0);
É curioso que o uso inadequado do ponteiro NULL seja explicitamente mencionado como motivo de falha na documentação do MSDN:
Failing to properly terminate the array with a NULL pointer will cause a crash.
- msdn.microsoft.com
Estou tentando obter um relatório sobre produtos do meu perfil e não consigo. O que estou fazendo de errado?
- Aplicativos de negociação gratuitos
- 8 000+ sinais para cópia
- Notícias econômicas para análise dos mercados financeiros
Você concorda com a política do site e com os termos de uso
Novo artigo Usar WinInet em MQL5. Parte 2: Solicitações POST e Arquivos foi publicado:
Autor: o_O