.NET
Microsoft Technologies based on the .NET software framework.
4,097 questions
This browser is no longer supported.
Upgrade to Microsoft Edge to take advantage of the latest features, security updates, and technical support.
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?
I forgot to add "/" sign at the end of Namespace. Yes, that's the only problem and solution :)