Ir para conteúdo
Fórum Script Brasil
  • 0

Resgatar dados enviados por POST


Guest Wellington Z.

Pergunta

Guest Wellington Z.

Galerinha, estou com o seguinte problema...

Preciso fazer a comunicação com um serviço de interação de um sistema usado aqui na empresa onde trabalho... Ele tem toda a ferramenta pronta.

Seria como http://sistema.com.br/interacao.exe?funcao...r&dados=....

Isso seria usando GET... Só que eles mesmo recomendam via post...

Eu já consegui via GET só que o problema que eu infrentava era que eu jogava(como link) para página e morria nela... aparecia o codigo de retorno em uma página em branco. então consegui a seguinte função que le o arquivo de retorno...

$retorno = file_get_contents("http://sistema.com.br/interacao.exe?funcao=inserir&dados=....");
só que com isso estou usando o get, e nas minhas interações mais complexas tenho problemas de tamanho da url e tambem por não conseguir passar caracteres especiais via get... como @, <> etc... Minha solução foi tentar ir a busca de como fazer o metodo post sem ter que enviar por um formulário padrão para o servidor. Encontrei a seguinte função...
function sendToHost($host,$method,$path,$data,$useragent=0)
    {
        if (empty($method)) {
            $method = 'GET';
        }
        $method = strtoupper($method);
        $fp = fsockopen($host, 80);
        if ($method == 'GET') {
            $path .= '?' . $data;
        }
        fputs($fp, "$method $path HTTP/1.1\r\n");
        fputs($fp, "Host: $host\r\n");
        fputs($fp, "Content-type: application/x-www-form-urlencoded\r\n");
        fputs($fp, "Content-length: " . strlen($data) . "\r\n");
        if ($useragent) {
            fputs($fp, "User-Agent: MSIE b\r\n");
        }
        fputs($fp, "Connection: close\r\n\r\n");
        if ($method == 'POST') {
            fputs($fp, $data);
        }

        while (!feof($fp)) {
            $buf .= fgets($fp,128);
        }
        fclose($fp);
        return $buf;
    }
$return = sendToHost("sistema.com.br","POST","/interacao.exe","funcao=inserir&dados=....);

Otimo, pelos teste que fiz me parece ter dado certo, mas como nada é perfeito, estou parado na questao... Como eu vou conseguir o retorno que a interação me da por ai?

Agradeço a todos...

Link para o comentário
Compartilhar em outros sites

1 resposta a esta questão

Posts Recomendados

Participe da discussão

Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.

Visitante
Responder esta pergunta...

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.



  • Estatísticas dos Fóruns

    • Tópicos
      152,3k
    • Posts
      652,4k
×
×
  • Criar Novo...