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()
{
if ( !extension_loaded('curl') ) {
trigger_error("You need cURL loaded to use this class", E_USER_ERROR);
}
}
/**
* Sends the xml content using the cURL library.
*/
function send( $str_xml, $str_url, $str_page, $boo_ssl = false )
{
$str_header = "POST " . $str_page . " HTTP/1.0 \r\n";
$str_header .= "MIME-Version: 1.0 \r\n";
$str_header .= "Content-type: application/PTI26 \r\n";
$str_header .= "Content-length: " . strlen($str_xml) . " \r\n";
$str_header .= "Content-transfer-encoding: text \r\n";
$str_header .= "Request-number: 1 \r\n";
$str_header .= "Document-type: Response\r\n";
$str_header .= "Interface-Version: InPhonex 1.0 \r\n";
$str_header .= "Connection: close \r\n\r\n";
$str_header .= $str_xml;
$res_curl = curl_init();
curl_setopt($res_curl, CURLOPT_URL, $str_url);
curl_setopt($res_curl, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($res_curl, CURLOPT_TIMEOUT, 30);
curl_setopt($res_curl, CURLOPT_CUSTOMREQUEST, $str_header);
curl_setopt($res_curl, CURLOPT_FOLLOWLOCATION, 1);
if ( $boo_ssl ) {
curl_setopt($res_curl, CURLOPT_SSL_VERIFYHOST, 0);
curl_setopt($res_curl, CURLOPT_SSL_VERIFYPEER, false);
}
$str_data = curl_exec($res_curl);
if ( curl_errno($res_curl) ) {
trigger_error(curl_error($res_curl), E_USER_ERROR);
} else {
curl_close($res_curl);
}
return $str_data;
}
}
$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