2015-11-30 1 views
-6

Je suis nouveau dans Android et essayer de développer une application Android pour le système de connexion. J'ai écrit des services Web en Java pour la connexion et l'appeler dans Android, mais je ne suis pas en mesure d'appeler ces services Web dans Android s'il vous plaît aidez-moi.Comment appeler Connexion Web Services dans Android

Mon Java Web Services: -

public class Login { 

public String authentication(String userName,String password){ 

     String retrievedUserName = ""; 
     String retrievedPassword = ""; 
     String status = ""; 
     try{ 

     Class.forName("com.mysql.jdbc.Driver"); 
     Connection con = DriverManager.getConnection("jdbc:mysql://localhost:3306/androidlogin","root","root"); 
     PreparedStatement statement = con.prepareStatement("SELECT * FROM user WHERE username = '"+userName+"'"); 
     ResultSet result = statement.executeQuery(); 



     while(result.next()){ 
     retrievedUserName = result.getString("username"); 
     retrievedPassword = result.getString("password"); 
     } 

    // System.out.println(retrievedUserName); 
     // System.out.println(retrievedPassword); 

     if(retrievedUserName.equals(userName)&&retrievedPassword.equals(password)){ 
     status = "Success!"; 
     } 

     else{ 
     status = "Login fail!!!"; 
     } 

     } 
     catch(Exception e){ 
     e.printStackTrace(); 
     } 
     return status; 

    } 

}

Mon android MainActivity est: -

public class MainActivity extends Activity { 

private final String NAMESPACE = "http://ws.webapp.org/"; 
private final String URL = "http://localhost:8086/WebApp/services/Login?wsdl"; 
private final String SOAP_ACTION = "http://ws.webapp.org/authentication"; 
private final String METHOD_NAME = "authentication"; 

/** Called when the activity is first created. */ 
@Override 
public void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.activity_main); 
    Button login = (Button) findViewById(R.id.btn_login); 
    login.setOnClickListener(new View.OnClickListener() { 

     public void onClick(View arg0) { 
      loginAction(); 

     } 
    }); 
} 

private void loginAction() { 
    SoapObject request = new SoapObject(NAMESPACE, METHOD_NAME); 

    EditText userName = (EditText) findViewById(R.id.tf_userName); 
    String user_Name = userName.getText().toString(); 
    EditText userPassword = (EditText) findViewById(R.id.tf_password); 
    String user_Password = userPassword.getText().toString(); 

    // Pass value for userName variable of the web service 
    PropertyInfo unameProp = new PropertyInfo(); 
    unameProp.setName("userName");// Define the variable name in the web 
            // service method 
    unameProp.setValue(user_Name);// set value for userName variable 
    unameProp.setType(String.class);// Define the type of the variable 
    request.addProperty(unameProp);// Pass properties to the variable 

    // Pass value for Password variable of the web service 
    PropertyInfo passwordProp = new PropertyInfo(); 
    passwordProp.setName("password"); 
    passwordProp.setValue(user_Password); 
    passwordProp.setType(String.class); 
    request.addProperty(passwordProp); 

    SoapSerializationEnvelope envelope = new SoapSerializationEnvelope(
      SoapEnvelope.VER11); 
    envelope.setOutputSoapObject(request); 
    HttpTransportSE androidHttpTransport = new HttpTransportSE(URL); 

    try { 
     androidHttpTransport.call(SOAP_ACTION, envelope); 
     SoapPrimitive response = (SoapPrimitive) envelope.getResponse(); 

     TextView result = (TextView) findViewById(R.id.tv_status); 
     result.setText(response.toString()); 

    } catch (Exception e) { 

    } 
} 

}

+0

Quelles exceptions sont élevés lorsque vous essayez d'appeler les années api? – Mayank

+0

Lorsque je saisis un nom d'utilisateur et un mot de passe qui sont stockés dans ma base de données qui est admin et 123, il ne s'affiche pas sur l'émulateur android qui se connecte avec succès –

Répondre

1

Dans android nombreuses façons dont vous pouvez appeler un service web

  1. Volley
  2. Rénovation
  3. HTTP URL Connexion

Volley Exemple

private void callWebServicePost() { 
    String postUrl = "http://URL"; 

    final JsonObjectRequest jsonObjectRequest = new JsonObjectRequest(Request.Method.POST, postUrl, new Response.Listener<JSONObject>() { 
     @Override 
     public void onResponse(JSONObject response) { 
      Log.e("response", response.toString()); 
     } 
    }, new Response.ErrorListener() { 
     @Override 
     public void onErrorResponse(VolleyError error) { 
     } 
    }) { 
     @Override 
     protected Map<String, String> getParams() throws com.android.volley.AuthFailureError { 
      Map<String, String> params = new HashMap<>(); 
      params.put("inc_id", "0"); 
      params.put("device_date", ""); 
      params.put("device_name", ""); 
      params.put("mac_address", ""); 
      return params; 
     } 

    }; 

    Volley.newRequestQueue(this).add(jsonObjectRequest); 
} 

Rénovation post Exemple

private void RetroWebServicePost() { 
    RestAdapter restAdapter = new RestAdapter.Builder().setEndpoint("http:/URL").build(); 
    WeatherInterface weatherInterface = restAdapter.create(WeatherInterface.class); 
    weatherInterface.getAttendance(new Callback<AttendancePojo>() { 
     @Override 
     public void success(AttendancePojo attendancePojo, retrofit.client.Response response) { 
      try { 
       Attendance_data data[]; 
       data = attendancePojo.getPostModel().getAttendance_data(); 
       List<String> attendence = new ArrayList<>(); 
       for (int i = 0; i < data.length; i++) { 
        attendence.add(data[i].toString()); 
       } 
       Log.e("response", attendence.toString()); 
       reponseData.setText(attendence.toString()); 
      } catch (NullPointerException e) { 
       e.printStackTrace(); 
      } catch (Exception e) { 
       e.printStackTrace(); 
      } 
     } 
     @Override 
     public void failure(RetrofitError error) { 
     } 
    }); 
} 

poste HTTP connexion Url Exemple

private void reqPost() throws IOException { 
    String postWebUrl = "http:URL"; 
    URL url = new URL(postWebUrl); 
    HttpURLConnection connection = (HttpURLConnection) url.openConnection(); 

    try { 

     connection.setRequestMethod("POST"); 
     connection.setDoInput(true); 
     connection.setDoOutput(true); 
     connection.connect(); 

     String urlParameters = "inc_id=" + URLEncoder.encode("0", "UTF-8") 
       + "&device_date=" 
       + URLEncoder.encode("", "UTF-8") 
       + "&device_name=" 
       + URLEncoder 
       .encode("", 
         "UTF-8") + "&mac_address=" 
       + URLEncoder.encode("", "UTF-8"); 
     //SEND REEQUEST 
     DataOutputStream dataOutputStream = new DataOutputStream(
       connection.getOutputStream()); 
     dataOutputStream.writeBytes(urlParameters); 
     dataOutputStream.flush(); 
     dataOutputStream.close(); 

     //GET RESPONSE 
     InputStream inputStream = connection.getInputStream(); 
     BufferedReader rd = new BufferedReader(new InputStreamReader(inputStream)); 
     String line; 
     StringBuffer response = new StringBuffer(); 
     while ((line = rd.readLine()) != null) { 
      response.append(line); 
      response.append('\r'); 
     } 
     rd.close(); 
     webResponse = response.toString(); 
     Log.e("response", response.toString()); 

    } catch (Exception e) { 

     e.printStackTrace(); 

    } finally { 
     connection.disconnect(); 
    } 
} 

En passant par ces exemples que vous pouvez appeler Web service.And obtenir une réponse