Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

Washington Junio

[Resolvido] erro com webservice

Recommended Posts

Bom Dia Amigos do Imasters!

 

Estou com um pequeno probleminha que vêm consumindo um bom tempo meu e de um colega de trabalho.

Estamo integrando nosso Ecommerce com um ERP aqui da empresa através de webservice.

 

Porém estou tendo dificuldade em solucionar um erro em uma integração.

 

O WSDL está disponivel no link: http://189.16.224.190:81/KLPRODUTO.apw?WSDL

Temos também os Parametros e Retornos neste link: http://189.16.224.190:81/WSINDEX.apw?cOp=03&WSVCNAME=KLPRODUTO&WSVCMETHOD=BUSCAPRODUTO

 

Bom vamos ao meu código PHP. Fiz algo bem simple somente para testes.

 

<?php
function webservice()
{
	$client = new SoapClient("http://189.16.224.190:81/KLPRODUTO.apw?WSDL"); 
  	$params = array('CODINICIAL' => "0001000001" , 'CODFINAL' => "0001000001");
	
	try {
	
		$result = $client->BUSCAPRODUTO(array('REQUESTBUSCAPRODUTO' => $params ) ); 
	
		if (is_soap_fault($result)):
			echo $fault->faultstring;  
		else:
			$valor = $result->RESPONSEBUSCAPRODUTO->STRESPONSEBUSCAPRODUTO;
			echo $valor->PROCODIGO."<br/>"; 
			echo $valor->PROMARCA."<br/>"; 
			echo $valor->PRONOME."<br/>"; 
		endif;	
	
	} catch (SoapFault $fault){
		echo $fault->faultstring;
	}
}
	
webservice();
?>

O erro gerado é uma mensagem que diz: "could not connect to host".

 

 

Quem puder me ajudar meu muito obrigado (:

Compartilhar este post


Link para o post
Compartilhar em outros sites

O erro gerado é uma mensagem que diz: "could not connect to host".

 

Isso significa que o serviço está offline.

Compartilhar este post


Link para o post
Compartilhar em outros sites

É só acessar os links que verá que o serviço está ativo e funcionando.

Mas mesmo assim o erro permanece!

 

O link que funciona é o da descrição do serviço, não do serviço.

 

É só consumir o serviço que verá que está offline.

 

;)

Compartilhar este post


Link para o post
Compartilhar em outros sites

 

É só acessar os links que verá que o serviço está ativo e funcionando.

Mas mesmo assim o erro permanece!

 

O link que funciona é o da descrição do serviço, não do serviço.

 

É só consumir o serviço que verá que está offline.

 

;)

 

Jão! O serviço aki esta ativo. Confirmei aqui e o serviço está rodando e habilitado.

http://189.16.224.190:81/WSINDEX.apw?cOp=02&WSVCNAME=KLPRODUTO

 

Veja o STATUS! está HABILITADO.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Bom amigo, eu já disse qual é o problema, você pode entrar em contato com o pessoal que provê o serviço para colocarem-no online ou ficar procurando problemas onde não existem.

 

Agora, uma coisa é fato, o serviço está offline.

 

Imagem Postada

 

;)

Compartilhar este post


Link para o post
Compartilhar em outros sites

beleza! vou verificar.

 

Mas essa tela que você enviou é que o WebService não esta com o Serviço de POST habilitado.

Somente é permitido acesso através de conexões.

 

Grato. Gentileza deixar o tópico aberto, caso outro usuário saiba a solução.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Imagem Postada

 

Veja isso também:

 

[neto@localhost ~]$ host 189.16.224.190
Host 190.224.16.189.in-addr.arpa. not found: 3(NXDOMAIN)

Compartilhar este post


Link para o post
Compartilhar em outros sites

João! Resolvi aki... Fiz um script e rodei localmente.. Funcionou que é uma beleza!

 

O problema está no Serviço de Hospedagem (LocaWeb). Tem que passar um cookie com alguns parametros.

 

ini_set("soap.wsdl_cache_enabled", "0");

	$client = new SoapClient('http://189.16.224.190:81/KLPRODUTO.apw?WSDL');
	$aOptions = array ("start_debug"=> "1", "debug_port"=> "10000", "debug_host"=> "localhost", "debug_stop"=> "1");
 
	foreach($aOptions as $key => $val) {
			$client->__setCookie($key,$val);
	}
	
	// chamada do serviço SOAP
	$result = $client->BUSCAPRODUTO(array('REQUESTBUSCAPRODUTO'=>array('CODFINAL'=>'0001000001','CODINICIAL'=>'0001000001'))); 			 

	if (is_soap_fault($result)){
		trigger_error("SOAP Fault: (faultcode: {$result->faultcode}, faultstring: {$result->faulstring})", E_ERROR);
	}else{
		echo "Resultado Encontrado : <br><br>";
		print_r($result);
	}

Valeu pela ajuda! E desculpa qualquer coisa aÊ! Abrss!

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.