question

UlasKAYALAR avatar image
1 Vote"
UlasKAYALAR asked UlasKAYALAR answered

With HTTP POST the data goes fine, when I send data with SOAP it goes empty/null

With HTTP POST the data goes fine, when I send data with SOAP it goes empty/null. I detected this by keeping a log on the server. Because the variables I send on the java side seem to be full.


 public class YLogin extends AppCompatActivity {
 EditText yoneticieposta, yoneticiparola;
 Button yoneticiDGiris;
 String Eposta, Parola, ReturnResult;
    
 /*Web Service*/
 public static String URL="https://api.example.com/MCG-WS.asmx?WSDL";
 public static String NAMESPACE="http://tempuri.org";
    
 /*Login API*/
 public static String SOAP_ACTION_LOGIN="http://tempuri.org/LoginAPI";
 public static String METHOD_NAME_LOGIN="LoginAPI";
    
 @Override
 protected void onCreate(Bundle savedInstanceState) {
     super.onCreate(savedInstanceState);
     setContentView(R.layout.ylogin);
     
     yoneticieposta = (EditText) findViewById(R.id.yoneticiepostaTx);
     yoneticiparola = (EditText) findViewById(R.id.yoneticiparolaTx);
     yoneticiDGiris = (Button) findViewById(R.id.yoneticiDGirisYapBt);
     yoneticiDGiris.setOnClickListener(new View.OnClickListener() {
         @Override
         public void onClick(View v) {
             Eposta = yoneticieposta.getText().toString();
             Parola = yoneticiparola.getText().toString();
    
             if(Eposta.isEmpty() || Parola.isEmpty()){
                 Toast.makeText(YLogin.this, "E-posta veya parola kısımlarını doldurun.", Toast.LENGTH_SHORT).show();
             }else{
                 new LoginAsyncTask().execute(Eposta, Parola);
             }
         }
     });
 }
    
 private class LoginAsyncTask extends AsyncTask<String, Void, String> {
     @Override
     protected void onPreExecute() {
         super.onPreExecute();
     }
    
     @Override
     protected String doInBackground(String... strings){
    
         SoapObject request = new SoapObject(NAMESPACE, METHOD_NAME_LOGIN);
    
    
         PropertyInfo infoEposta = new PropertyInfo();
         infoEposta.setName("eposta");
         infoEposta.setType(String.class);
         infoEposta.setValue(strings[0].toString());
         request.addProperty(infoEposta);
    
         PropertyInfo infoParola = new PropertyInfo();
         infoParola.setName("parola");
         infoParola.setType(String.class);
         infoParola.setValue(strings[1].toString());
         request.addProperty(infoParola);
    
         SoapSerializationEnvelope envelope = new SoapSerializationEnvelope(SoapEnvelope.VER11);
    
         envelope.dotNet =true;
         envelope.setOutputSoapObject(request);
    
         HttpTransportSE androidHttpTransport = new HttpTransportSE(URL);
    
         try {
             androidHttpTransport.call(SOAP_ACTION_LOGIN, envelope);
             if (envelope.bodyIn instanceof SoapFault) {
                 SoapFault error = (SoapFault) envelope.bodyIn;
                 System.out.println("TTTTTTTTTTTTTT Error message : " + error.toString());
             }
             if (envelope.bodyIn instanceof SoapObject) {
                 SoapObject result = (SoapObject) envelope.bodyIn;
                 if(result!=null){
                     ReturnResult = result.getProperty(0).toString();
                 }
             }
    
         }
         catch(Exception e){
             e.printStackTrace();
             return e.toString();
         }
    
         return ReturnResult;
     }
    
     @Override
     protected void onPostExecute(String result) {
    
         if(result.equals("başarılı")){
             Intent intent = new Intent(YLogin.this, dashboard.class);
             intent.putExtra("yoneticiEposta", Eposta);
             startActivity(intent);
         }else{
             Toast.makeText(YLogin.this, "E-posta veya parolanız yanlış, tekrar deneyin.", Toast.LENGTH_SHORT).show();
         }
     }
 }


 request.addProperty("eposta", Eposta);
 request.addProperty("parola", Parola);


Even if I try, the problem still persists.

What could be the reason for the data to go empty/null? Could you help?

windows-wcf
· 1
5 |1600 characters needed characters left characters exceeded

Up to 10 attachments (including images) can be used with a maximum of 3.0 MiB each and 30.0 MiB total.

Hi @UlasKAYALAR ,
Your problem does not belong entirely to windows-wcf. Also an Android tag?

0 Votes 0 ·

1 Answer

UlasKAYALAR avatar image
0 Votes"
UlasKAYALAR answered

I forgot to add "/" sign at the end of Namespace. Yes, that's the only problem and solution :)

5 |1600 characters needed characters left characters exceeded

Up to 10 attachments (including images) can be used with a maximum of 3.0 MiB each and 30.0 MiB total.