D
DevelopingPhil
Neues Mitglied
- 1
Guten Tag zusammen,
ich habe ein etwas komisches Problem. Und zwar möchte ich einen sicheren Login bauen aber es klappt überhaupt nicht. Eigentlich müsste mir der Server bei richtiger Dateneingabe auch eine anständige Antwort geben. Stattdesssen kommt beim Emulator die ganze Zeit Sachen wie "Skipped 33803 Frames!..." und so weiter.
Kann mir da jemand weiterhelfen?
Mit freundlichen Grüßen
Philipp Escher
ich habe ein etwas komisches Problem. Und zwar möchte ich einen sicheren Login bauen aber es klappt überhaupt nicht. Eigentlich müsste mir der Server bei richtiger Dateneingabe auch eine anständige Antwort geben. Stattdesssen kommt beim Emulator die ganze Zeit Sachen wie "Skipped 33803 Frames!..." und so weiter.
Kann mir da jemand weiterhelfen?
Code:
package com.example.test;
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.OutputStreamWriter;
import java.net.MalformedURLException;
import java.net.URL;
import java.net.URLConnection;
import java.net.URLEncoder;
import java.security.NoSuchAlgorithmException;
import android.support.v7.app.ActionBar;
import android.support.v7.app.ActionBarActivity;
import android.os.Bundle;
import android.os.StrictMode;
import android.view.Menu;
import android.view.MenuItem;
import android.view.View;
import android.widget.Button;
import android.widget.CheckBox;
import android.widget.EditText;
import android.widget.TextView;
public class LoginActivity extends ActionBarActivity {
Button button;
EditText usernameText;
EditText passwordText;
CheckBox savelogin;
TextView logininfo;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_login);
if (android.os.Build.VERSION.SDK_INT > 9) {
StrictMode.ThreadPolicy policy = new StrictMode.ThreadPolicy.Builder().permitAll().build();
StrictMode.setThreadPolicy(policy);
}
ActionBar actionBar = getSupportActionBar();
actionBar.hide();
button = (Button) findViewById(R.id.loginButton);
usernameText = (EditText) findViewById(R.id.usernameText);
passwordText = (EditText) findViewById(R.id.passwordText);
savelogin = (CheckBox) findViewById(R.id.saveloginCheckbox);
logininfo = (TextView) findViewById(R.id.loginInfo);
button.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
// Login ausführen
String usernameString = usernameText.getText().toString();
String passwordString = passwordText.getText().toString();
if(usernameString != "" && passwordString != "") {
// POST Request absetzen
try {
EncryptPassword ep = new EncryptPassword();
String encryptedPassword = null;
try {
encryptedPassword = ep.SHA512(passwordString);
} catch (NoSuchAlgorithmException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
String data = URLEncoder.encode("username", "UTF-8") + "=" + URLEncoder.encode(usernameString, "UTF-8");
data += "&" + URLEncoder.encode("password", "UTF-8") + "=" + URLEncoder.encode(encryptedPassword, "UTF-8");
logininfo.setText(data);
String text = "";
BufferedReader reader = null;
URL url = new URL("http://www.xyz.de/login");
URLConnection connection = url.openConnection();
connection.setDoOutput(true);
OutputStreamWriter writer = new OutputStreamWriter(connection.getOutputStream());
writer.write(data);
writer.flush();
reader = new BufferedReader(new InputStreamReader(connection.getInputStream()));
StringBuilder sb = new StringBuilder();
String line = null;
while((line = reader.readLine()) != null) {
sb.append(line + "\n");
}
text = sb.toString();
if(text == "{\"error\":\"Zu viele Anfragen.\"}") {
logininfo.setText("Bitte probiere es in einer Minute noch einmal.");
}
logininfo.setText(text);
} catch (MalformedURLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
} else {
// nichts machen, da nicht beide Felder ausgefüllt sind
}
}
});
}
@Override
public boolean onCreateOptionsMenu(Menu menu) {
// Inflate the menu; this adds items to the action bar if it is present.
getMenuInflater().inflate(R.menu.login, menu);
return true;
}
@Override
public boolean onOptionsItemSelected(MenuItem item) {
// Handle action bar item clicks here. The action bar will
// automatically handle clicks on the Home/Up button, so long
// as you specify a parent activity in AndroidManifest.xml.
int id = item.getItemId();
if (id == R.id.action_settings) {
return true;
}
return super.onOptionsItemSelected(item);
}
}
Mit freundlichen Grüßen
Philipp Escher