2013-06-06 2 views
1

J'essaye d'envoyer une chaîne json mais quand j'appelle le WebService il envoie un paramètre nul au lieu de ma chaîne. Quand je vais à Debug je peux voir sur le soapObject Propertis mon json. mais dans mon webService j'ai mis et quand je l'appelle de mon application andoid il retourne toujours nullAppel de WebService Asp.Net envoi d'un paramètre JSON

if (json.Equals(null)) { 
    return "null"; 
} 

try { 
    return json; 
    root = JObject.Parse(json); 
} catch (Exception e) { 
    return e.StackTrace; 
} 
return "parseok"; 

Voici le code que j'utilise.

public class OpcoesActivity extends Activity implements OnClickListener { 
     private String cpf; 
     private String senha; 
     private PontosUsuarioDAO pdao = new PontosUsuarioDAO(this); 
     @Override 
     protected void onCreate(Bundle savedInstanceState) { 
      super.onCreate(savedInstanceState); 
      setContentView(R.layout.opcoeslayout); 

      cpf = getIntent().getStringExtra("cpf"); 
      senha = getIntent().getStringExtra("senha"); 
      Button importar = (Button) findViewById(R.id.bt_importar); 
      importar.setOnClickListener(this); 
      Button exportar = (Button) findViewById(R.id.bt_exportar); 
      exportar.setOnClickListener(this); 
     } 

     public void onClick(View v) { 

      switch (v.getId()) { 
       case R.id.bt_importar: 
        Intent i = new Intent(this, SincronizarActivity.class); 
        i.putExtra("cpf", cpf); 
        i.putExtra("senha", senha); 
        startActivity(i); 
        break; 
       case R.id.bt_exportar: 
        new Thread(new Runnable() { 
          public void run() { 
           Gson gson = new Gson(); 
           final String json = gson.toJson(pdao.exportaPontosUsuario(cpf)); 
           ExportarDados exp = new ExportarDados("{\"teste\":\"java\"}"); 
           String b = exp.ExportaDadosUser(); 
          } 
        }).start(); 
        break; 
       } 
      } 
     } 

Et voici la classe à exporter

public class ExportarDados { 
     private static final String SOAP_ACTION = "http://serv.lageo.ufpr.br/EnviaPontosUsuario"; 
     private static final String METHOD_NAME = "EnviaPontosUsuario"; 
     private static final String NAMESPACE = "http://serv.lageo.ufpr.br/"; 
     private static final String URL = "http://200.17.203.150/Caderneta/Sincronizar.asmx"; 
     private String json; 
     private SoapObject soapObject; 
     private String result = ""; 

     public ExportarDados(String json) { 
      this.json = json; 
     } 

     public String ExportaDadosUser() { 
      String e2; 
      try { 
       soapObject = new SoapObject(NAMESPACE, METHOD_NAME); 
       soapObject.addProperty("json", json); 
       SoapSerializationEnvelope soapEnvelope = new SoapSerializationEnvelope(SoapEnvelope.VER11); 
       soapEnvelope.dotNet = true; 
       soapEnvelope.setOutputSoapObject(soapObject); 

       HttpTransportSE ht = new HttpTransportSE(URL); 
       ht.call(SOAP_ACTION, soapEnvelope); 
       SoapPrimitive resultString = (SoapPrimitive) soapEnvelope.getResponse(); 
       result = resultString.toString(); 
      } catch(Exception e) { 
       e.printStackTrace(); 
      } 

      return result; 
     } 
} 
+0

Cela me semble bon, êtes-vous sûr que l'erreur n'est pas du côté du serveur? – FWeigl

+0

au lieu de "{\" teste \ ": \" java \ "}" Lorsque j'appelle le constructeur je vais mettre la chaîne json que je reçois de la chaîne finale json = gson.toJson (pdao.exportaPontosUsuario (cpf)); – LeandroC

+0

Je suis sûr. Lorsque j'essaie directement sur le navigateur, cela fonctionne bien. vous pouvez l'essayer vous-même. – LeandroC

Répondre