Tecnologia do Blogger.
RSS

Re: [androidbrasil-dev] Ajuda Web service


Diego a tarde vou tentar, obrigado.

 
2011/11/30 Diego Ampessan <ampessann@gmail.com>
Cara, eu tenho so exemplo usando WCF Rest no .NET para utlizar JSON ...

Segue exemplo:

Chamar um metodo e receber alguma coisa :

HttpGet request = new HttpGet(strURLGET);

// request.setHeader("Accept", "application/json");
// request.setHeader("Content-type", "application/json");

HttpResponse response = null;
DefaultHttpClient httpClient = new DefaultHttpClient();
try {
response = httpClient.execute(request);
} catch (ClientProtocolException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
HttpEntity responseEntity = response.getEntity();
char[] buffer = new char[(int) responseEntity
.getContentLength()];

try {
InputStream stream = responseEntity.getContent();
InputStreamReader reader = new InputStreamReader(stream);

reader.read(buffer);
stream.close();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}

Log.i("Recebendo:", new String(buffer));
String teste = new String(buffer);
txtGET.setText(teste);



Enviando dados por POST 

HttpClient httpclient = new DefaultHttpClient();
HttpPost httppost = new HttpPost(
// HttpPost httppost = new HttpPost(

try {
// Add your data
List<NameValuePair> nameValuePairs = new ArrayList<NameValuePair>(
2);
nameValuePairs.add(new BasicNameValuePair("nome",
"Diego Ampessan"));
nameValuePairs.add(new BasicNameValuePair("email",
nameValuePairs.add(new BasicNameValuePair("idade", "21"));
httppost.setEntity(new UrlEncodedFormEntity(nameValuePairs));
Log.i("Enviando:", nameValuePairs.toString());

// Execute HTTP Post Request
HttpResponse response = httpclient.execute(httppost);

HttpEntity responseEntity = response.getEntity();
char[] buffer = new char[(int) responseEntity
.getContentLength()];

try {
InputStream stream = responseEntity.getContent();
InputStreamReader reader = new InputStreamReader(stream);

reader.read(buffer);
stream.close();
reader.close();

} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}

String teste = new String(buffer);
txtPOST.setText(teste);

} catch (ClientProtocolException e) {
// TODO Auto-generated catch block
} catch (IOException e) {
// TODO Auto-generated catch block
}
}


Em 30 de novembro de 2011 10:47, Thiago Neves <ttn.passos@gmail.com> escreveu:

Sim, retorna o seguinte:
 

GetCategorias

Test

The test form is only available for requests from the local machine.

SOAP 1.1

The following is a sample SOAP 1.1 request and response. The placeholders shown need to be replaced with actual values.

POST /blog.asmx HTTP/1.1 Host: www.dominio.com.br Content-Type: text/xml; charset=utf-8 Content-Length: length SOAPAction: "http://tempuri.org/GetCategorias"  <?xml version="1.0" encoding="utf-8"?> <soap:Envelope xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/">   <soap:Body>     <GetCategorias xmlns="http://tempuri.org/" />   </soap:Body> </soap:Envelope>
HTTP/1.1 200 OK Content-Type: text/xml; charset=utf-8 Content-Length: length  <?xml version="1.0" encoding="utf-8"?> <soap:Envelope xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/">   <soap:Body>     <GetCategoriasResponse xmlns="http://tempuri.org/">       <GetCategoriasResult>         <Categoria>           <nIdCategoria>int</nIdCategoria>           <Titulo>string</Titulo>         </Categoria>         <Categoria>           <nIdCategoria>int</nIdCategoria>           <Titulo>string</Titulo>         </Categoria>       </GetCategoriasResult>     </GetCategoriasResponse>   </soap:Body> </soap:Envelope>

SOAP 1.2

The following is a sample SOAP 1.2 request and response. The placeholders shown need to be replaced with actual values.

POST /blog.asmx HTTP/1.1 Host: www.dominio.com.br Content-Type: application/soap+xml; charset=utf-8 Content-Length: length  <?xml version="1.0" encoding="utf-8"?> <soap12:Envelope xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:soap12="http://www.w3.org/2003/05/soap-envelope">   <soap12:Body>     <GetCategorias xmlns="http://tempuri.org/" />   </soap12:Body> </soap12:Envelope>
HTTP/1.1 200 OK Content-Type: application/soap+xml; charset=utf-8 Content-Length: length  <?xml version="1.0" encoding="utf-8"?> <soap12:Envelope xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:soap12="http://www.w3.org/2003/05/soap-envelope">   <soap12:Body>     <GetCategoriasResponse xmlns="http://tempuri.org/">       <GetCategoriasResult>         <Categoria>           <nIdCategoria>int</nIdCategoria>           <Titulo>string</Titulo>         </Categoria>         <Categoria>           <nIdCategoria>int</nIdCategoria>           <Titulo>string</Titulo>         </Categoria>       </GetCategoriasResult>     </GetCategoriasResponse>   </soap12:Body> </soap12:Envelope>


2011/11/30 leonardo. <leonardometalhead@gmail.com>

Consegue acessar o WSDL pelo browser?

Em 30 de novembro de 2011 09:27, Thiago Neves <ttn.passos@gmail.com> escreveu:

Alguem tem algum modelo, tutorial, de como conectar a um Web service de .NET?


2011/11/30 Thiago Neves <ttn.passos@gmail.com>
É parece que é isso a resposta esta nula, o que pode ser, o caminho?, ou o WS que não retorna nada, o caminho URL e o metodo são esses.


2011/11/30 Neto Marin <netomarin@gmail.com>

Vc tem certeza que o WS está retornando algo? Está parecendo que o WS não está respondendo e então a mensagem está nula, causando seu problema.

Faça um debug e veja a resposta do WS.

Abraços
Neto

Em 30/11/2011 07:26, "Thiago Neves" <ttn.passos@gmail.com> escreveu:

Olá pessoal estou tentando conectar a um webservice e da o seguinte
erro:

11-30 08:51:20.468: D/Service(343): -
faultcode: 'soap:Client' faultstring: 'Server did not recognize
the value of HTTP Header SOAPAction: .' faultactor:
'null' detail: org.kxml2.kdom.Node@405303f0


O Web service é feito em .Net e deve retornar um array de string,
estou usando o seguinte codigo:

public class Service {


   private static final String METHOD_NAME = "GetCategorias"; //NOME
DO METODO
   private static final String NAMESPACE = "http://www.dominio.com.br/
blog.asmx";
   private static final String URL = "http://www.dominio.com.br/
blog.asmx";
       private Object resultsRequestSOAP;

   public String GetPost() {
                SoapObject request = new SoapObject(NAMESPACE,
METHOD_NAME);


       SoapSerializationEnvelope envelope = new
SoapSerializationEnvelope(SoapEnvelope.VER11);

       envelope.dotNet = true;

       envelope.setOutputSoapObject(request);


       try {


           HttpTransportSE androidHttpTransport = new
HttpTransportSE(URL);
           androidHttpTransport.call("", envelope);



           resultsRequestSOAP =  envelope.getResponse();

           String[] results = (String[])  resultsRequestSOAP;




           return results[0].toString();

       } catch (Exception e) {

           return e.getMessage();

       }
   }
}

E Na Actividade chamo ele assim:


 Service service = new Service();

       String result =  service.GetPost();

       txTeste.setText(result);












--
Att.
Diego Ampessan
Microsoft MTA

www.diegoampessan.com.br


Os computadores são incrivelmente rápidos, precisos e burros; Os homens são incrivelmente lentos, imprecisos e brilhantes; Juntos, seu poder ultrapassa os limites da imaginação  - "Albert Einstein "


  • Digg
  • Del.icio.us
  • StumbleUpon
  • Reddit
  • RSS

0 comentários:

Postar um comentário