WebService Client?

Pessoal, eu preciso conectar-se a um WebService …

Me deram o endereço …

https://www.inphonex.com/API/1.0/

E me falaram o seguinte …

The requests / responses are XML based.
• All requests must be authenticated.
• All requests are sent over the secure HTTPS transport.

Mas então todas as referencias que eu acho para conectar-se em WebService eles informam que eu preciso informar o arquivo .wsdl … já vi pedindo o arquivo .jws … E no endereço que me deram não tem nenhum arquivo …

Se acessarmos ele só informa um arquivo XML com o status 414, que siginifica Malformed XML

Agora eu boiei … 8O

Qual seria então a forma correta, ou a melhor para acessar aquele serviço ?

Se alguem puder ajudar …

Abraços

Olá Fabiano,

Primeiro, essa url do webservice tah bixada, não é a correta pois está faltando o arquivo lá.

Segundo, sobre o client, você pode usar uma forma simples, sem o arquivo wsdl, que é o modelo que deve ser seguido por isso que ele é exigido, mas dessa forma vc não presisará dele.

Mas dessa forma você deverá saber o MÉTODO a ser chamado no webservice e seus PARÂMETROS a serem passados, separados por “,”… por exemplo: Nome,Idade,Cidade
Ah! Vai precisar saber também qual tipo de retorno do seu webservice… no caso de exemplo é usado String[]… mas pode ser String, int… qualquer coisa.


import org.apache.axis.client.Call;
import org.apache.axis.client.Service;

[...]

        // Faz a conexão
        Call call = (Call) new Service().createCall();  
        call.setTargetEndpointAddress(ENDERECO);   
        
        // Marcando o método a ser chamado e passando os parâmetros
        try {            
           ret = (String[]) call.invoke("","Servico",new Object []{PARÂMETROS});
        } catch (Exception ex) {
            ret[0] = "WebService não respondeu."; 
            ex.printStackTrace();
        }

[...]

Para conseguir as bibliotecas faça o download em
http://ws.apache.org/axis/

Lá tem tudo o que precisar.

Olá a todos … trazendo o tópido de novo a ativa e sobre oq nosso amigo falou …

Fiz o questionamento de acordo com as observações q me passaram … E eles falaram que tudo funciona perfeitamente … e até me passaram um exemplo de conexão, porem feita em PHP …

Se alguem puder dar uma ajuda de como eu faria isso usando Java … pq conheço bulhufas de PHP …

Segue o código PHP

[code]<?php

class xmlSender {

/**
 * Constructor
 * Verify if the cURL is available 
 */
function xmlSender&#40;&#41;
&#123;
	if &#40; !extension_loaded&#40;'curl'&#41; &#41; &#123;
		trigger_error&#40;&quot;You need cURL loaded to use this class&quot;, E_USER_ERROR&#41;;
	&#125;
&#125;

/**
 * Sends the xml content using the cURL library.
 */
function send&#40; $str_xml, $str_url, $str_page, $boo_ssl = false &#41;
&#123;
	$str_header  = &quot;POST &quot; . $str_page . &quot; HTTP/1.0 \r\n&quot;;
	$str_header .= &quot;MIME-Version&#58; 1.0 \r\n&quot;;
	$str_header .= &quot;Content-type&#58; application/PTI26 \r\n&quot;;
	$str_header .= &quot;Content-length&#58; &quot; . strlen&#40;$str_xml&#41; . &quot; \r\n&quot;;
	$str_header .= &quot;Content-transfer-encoding&#58; text \r\n&quot;;
	$str_header .= &quot;Request-number&#58; 1 \r\n&quot;;
	$str_header .= &quot;Document-type&#58; Response\r\n&quot;;
	$str_header .= &quot;Interface-Version&#58; InPhonex 1.0 \r\n&quot;;
	$str_header .= &quot;Connection&#58; close \r\n\r\n&quot;;
	$str_header .= $str_xml;

	$res_curl = curl_init&#40;&#41;;
	curl_setopt&#40;$res_curl, CURLOPT_URL, $str_url&#41;;
	curl_setopt&#40;$res_curl, CURLOPT_RETURNTRANSFER, 1&#41;;
	curl_setopt&#40;$res_curl, CURLOPT_TIMEOUT, 30&#41;;    
	curl_setopt&#40;$res_curl, CURLOPT_CUSTOMREQUEST, $str_header&#41;;
	curl_setopt&#40;$res_curl, CURLOPT_FOLLOWLOCATION, 1&#41;;
	
	if &#40; $boo_ssl &#41; &#123;
		curl_setopt&#40;$res_curl, CURLOPT_SSL_VERIFYHOST,  0&#41;;
		curl_setopt&#40;$res_curl, CURLOPT_SSL_VERIFYPEER, false&#41;;
	&#125; 
	
	$str_data = curl_exec&#40;$res_curl&#41;;
	if &#40; curl_errno&#40;$res_curl&#41; &#41; &#123;
	   trigger_error&#40;curl_error&#40;$res_curl&#41;, E_USER_ERROR&#41;;
	&#125; else &#123;
	   curl_close&#40;$res_curl&#41;;
	&#125;
	
	return $str_data;
&#125;

}

$str_xml = ‘<voip>’ .
‘<auth>’ .
‘<customer_id>customerid</customer_id>’ .
‘<password>password</password>’ .
‘</auth>’ .
‘<request>’ .
‘<request_id>query</request_id>’ .
‘<query_id>cdr</query_id>’ .
‘<parameters>\n’ .
‘<start_date>2006-06-22</start_date>\n’ .
‘<end_date>2006-06-22</end_date>\n’ .
‘</parameters>\n’ .
‘</request>’ .
‘</voip>’;

$o = new xmlSender;
print_r($o->send($str_xml, "https://www.inphonex.com", "/API/1.0/", true));
?>[/code]

Faloww

Abraços