С HTTP POST данные идут нормально, когда я отправляю данные с помощью SOAP, они становятся пустыми/пустыми

#java #android #api #soap

Вопрос:

С HTTP POST данные идут нормально, когда я отправляю данные с помощью SOAP, они становятся пустыми/пустыми. Я обнаружил это, ведя журнал на сервере. Потому что переменные, которые я отправляю на стороне java, кажутся заполненными.

 public class YLogin extends AppCompatActivity {
EditText yoneticieposta, yoneticiparola;
Button yoneticiDGiris;
String Eposta, Parola, ReturnResu<

/*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 ReturnResu<
    }

    @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);
 

Даже если я попытаюсь, проблема все равно останется.

Что может быть причиной того, что данные становятся пустыми/пустыми? Не могли бы вы помочь?

Ответ №1:

Я забыл добавить знак «/» в конце пространства имен.

Да, это единственная проблема и решение 🙂