<?php
header('Content-Type: text/html; charset=utf-8');
echo "<h2>🔧 Correção de Timeout e SSL - Android App</h2>";

// 1. Verificar configurações do PHP
echo "<h3>1. Configurações atuais do PHP</h3>";
echo "⏱️ max_execution_time: " . ini_get('max_execution_time') . "s<br>";
echo "⏱️ default_socket_timeout: " . ini_get('default_socket_timeout') . "s<br>";
echo "⏱️ memory_limit: " . ini_get('memory_limit') . "<br>";
echo "🔒 allow_url_fopen: " . (ini_get('allow_url_fopen') ? 'On' : 'Off') . "<br>";

// 2. Ajustar configurações para melhor compatibilidade com Android
echo "<h3>2. Ajustando configurações para Android</h3>";

// Aumentar timeouts
ini_set('max_execution_time', 60);
ini_set('default_socket_timeout', 30);
ini_set('memory_limit', '256M');

echo "✅ max_execution_time ajustado para: " . ini_get('max_execution_time') . "s<br>";
echo "✅ default_socket_timeout ajustado para: " . ini_get('default_socket_timeout') . "s<br>";
echo "✅ memory_limit ajustado para: " . ini_get('memory_limit') . "<br>";

// 3. Testar a API com configurações otimizadas
echo "<h3>3. Teste da API com configurações otimizadas</h3>";

$url = "https://sistemas.pinheiroempresas.com.br/controlefrotaV1.1/backend-php/api-simples-v2.php?acao=verificar-rota-em-andamento&tecnico_id=4";

echo "🔗 Testando URL: $url<br><br>";

// Usar file_get_contents com contexto otimizado
$context = stream_context_create([
    'http' => [
        'timeout' => 30,
        'user_agent' => 'Android-App-Test',
        'method' => 'GET',
        'header' => [
            'Accept: application/json',
            'Content-Type: application/json'
        ]
    ],
    'ssl' => [
        'verify_peer' => false,
        'verify_peer_name' => false,
        'allow_self_signed' => true
    ]
]);

$startTime = microtime(true);
$response = @file_get_contents($url, false, $context);
$endTime = microtime(true);
$duration = round(($endTime - $startTime) * 1000, 2);

if ($response === false) {
    echo "❌ <strong>ERRO:</strong> Não foi possível conectar com a API<br>";
    echo "📋 Erro: " . error_get_last()['message'] . "<br>";
    echo "⏱️ Tempo de tentativa: {$duration}ms<br><br>";
} else {
    echo "✅ <strong>SUCESSO:</strong> API está respondendo<br>";
    echo "⏱️ Tempo de resposta: {$duration}ms<br>";
    echo "📋 Resposta: " . substr($response, 0, 300) . "...<br><br>";
}

// 4. Testar com cURL como alternativa
echo "<h3>4. Teste alternativo com cURL</h3>";

$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_TIMEOUT, 30);
curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, 10);
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, false);
curl_setopt($ch, CURLOPT_USERAGENT, 'Android-App-Test');
curl_setopt($ch, CURLOPT_HTTPHEADER, [
    'Accept: application/json',
    'Content-Type: application/json'
]);

$startTime = microtime(true);
$responseCurl = curl_exec($ch);
$endTime = microtime(true);
$durationCurl = round(($endTime - $startTime) * 1000, 2);

$httpCode = curl_getinfo($ch, CURLINFO_HTTP_CODE);
$error = curl_error($ch);
curl_close($ch);

echo "📊 Código HTTP: $httpCode<br>";
echo "⏱️ Tempo de resposta: {$durationCurl}ms<br>";
echo "❌ Erro cURL: $error<br>";
echo "📋 Resposta: " . substr($responseCurl, 0, 300) . "...<br><br>";

// 5. Verificar se o problema é específico do Android
echo "<h3>5. Diagnóstico para Android</h3>";

echo "<p><strong>Possíveis causas do erro 'Software caused connection abort':</strong></p>";
echo "<ul>";
echo "<li>⏱️ <strong>Timeout muito baixo</strong> - Android pode ter conexão mais lenta</li>";
echo "<li>🔒 <strong>Problema de certificado SSL</strong> - Certificado auto-assinado ou inválido</li>";
echo "<li>🌐 <strong>Problema de DNS</strong> - Resolução de domínio lenta</li>";
echo "<li>📱 <strong>Configuração de rede</strong> - Wi-Fi ou dados móveis instáveis</li>";
echo "</ul>";

// 6. Recomendações
echo "<h3>6. Recomendações para o Android</h3>";

echo "<p><strong>Para corrigir no app Android:</strong></p>";
echo "<ol>";
echo "<li>🔧 <strong>Aumentar timeout</strong> para 30-60 segundos</li>";
echo "<li>🔒 <strong>Desabilitar verificação SSL</strong> para desenvolvimento</li>";
echo "<li>🔄 <strong>Implementar retry automático</strong> em caso de falha</li>";
echo "<li>📡 <strong>Usar HTTP em vez de HTTPS</strong> temporariamente para teste</li>";
echo "</ol>";

echo "<h3>✅ Correção concluída!</h3>";
echo "<p><strong>Próximos passos:</strong></p>";
echo "<ol>";
echo "<li>Teste os links acima para verificar se a API está funcionando</li>";
echo "<li>Se funcionar no navegador, o problema é específico do Android</li>";
echo "<li>Ajuste as configurações de timeout no app Android</li>";
echo "</ol>";
?>
