Boa noite.
Preciso consumir um webservice que esta rodando no glassfish, criei o mesmo pelo netbeans e está implantado e testado e funcionando kkk.
Quais os procedimento para conseguir consumi-lo pelo android?
Tentei usar o KSOAP2 mais não obtive sucesso.
Seria a unica maneira?
Esse webservice criado no netbeans precisa ter alguma nova configuracao para aceita o android?
Obrigado
Aotto
Fevereiro 22, 2011, 11:27pm
#2
Olá, bom eu estou desenvolvendo também um cliente web service para o android
e para se comunicar com o web service eu utilizei a API do apache HttpClient é bem tranquila utiliza-la da uma olhada na API.
Aqui tem um exemplo:
http://lukencode.com/2010/04/27/calling-web-services-in-android-using-httpclient/
Ah nao esqueça de adicionar no AndroidManifest esta linha
para que o android possa acessar a internet
Abraços
To querendo faze a mesma coisa, alguém dos dois pode mostrar os fontes ?
Um exemplo utilizando um WebService feito em .NET: (Cotação de moedas)
//servico para conversao de moedas
private static final String URL_CONVERT_CURRENCY = "http://www.webserviceX.NET/CurrencyConvertor.asmx";
private static final String SOAP_ACTION_CURRENCY = "http://www.webserviceX.NET/ConversionRate";
private static final String NAME_SPACE_CURRENCY = "http://www.webserviceX.NET/";
private static final String METHOD_CURRENCY = "ConversionRate";
public double getConversao(String fromMoney, String toMoney){
double retorno = 0;
SoapObject request = new SoapObject(NAME_SPACE_CURRENCY, METHOD_CURRENCY);
request.addProperty("FromCurrency", fromMoney);
request.addProperty("ToCurrency", toMoney);
SoapSerializationEnvelope envelope = new SoapSerializationEnvelope(SoapEnvelope.VER11);
envelope.dotNet = true;
envelope.setOutputSoapObject(request);
try {
HttpTransportSE androidHttpTransport = new HttpTransportSE(URL_CONVERT_CURRENCY);
androidHttpTransport.call(SOAP_ACTION_CURRENCY, envelope);
SoapPrimitive result = (SoapPrimitive) envelope.getResponse();
Log.i("RETORNO", result.toString());
retorno = Double.parseDouble(result.toString());
} catch (Exception e) {
e.printStackTrace();
}
return retorno;
}
Um exemplo para consumir um WebService feito em Java (gerado um arquivo WSDL):
private static final String NAMESPACE = "http://mysqlapp-androidapps.rhcloud.com";
private static final String URL = "http://mysqlapp-androidapps.rhcloud.com/mysqlapp/PessoaWS?wsdl";
//método inserindo tipos primitivos
private static final String SOAP_ACTION = "inserirComParametros";
private static final String METHOD_NAME = "inserirComParametros";
public void inserir(String nome, int idade) {
SoapObject request = new SoapObject(NAMESPACE, METHOD_NAME);
request.addProperty("nome", nome);
request.addProperty("idade", idade);
SoapSerializationEnvelope envelope = new SoapSerializationEnvelope(SoapEnvelope.VER11);
envelope.setOutputSoapObject(request);
try {
HttpTransportSE androidHttpTransport = new HttpTransportSE(URL);
androidHttpTransport.call(SOAP_ACTION, envelope);
SoapPrimitive result = (SoapPrimitive) envelope.getResponse();
} catch (Exception e) {
e.printStackTrace();
}
}
Permissão para acesso a internet no arquivo de manifesto:
<uses-permission android:name="android.permission.INTERNET" />
Os exemplos foram feitos utilizando a biblioteca KSoap2: Download KSoap2