Android auf Wamp-Server-Verbindung mit Android Studio und PHP
Ich bin Neuling hier. Ich möchte eine Verbindung zu meinem android-app zu wampserver Datenbank. Ich fand ein tutorial auf dieser link, Aber wo soll ich finden, meine serverUrl in wampserver? Es sollte wie folgt Aussehen: private final String serverUrl = "your path here"
Also, wo finde ich "your path here"
?
Hier ist mein code:
MainActivity.java
package inducesmile.com.androidloginandregistration;
import android.content.Intent;
import android.os.AsyncTask;
import android.os.Bundle;
import android.support.v7.app.ActionBarActivity;
import android.view.Menu;
import android.view.MenuItem;
import android.view.View;
import android.widget.Button;
import android.widget.EditText;
import android.widget.Toast;
import org.apache.http.HttpResponse;
import org.apache.http.NameValuePair;
import org.apache.http.client.ClientProtocolException;
import org.apache.http.client.HttpClient;
import org.apache.http.client.entity.UrlEncodedFormEntity;
import org.apache.http.client.methods.HttpPost;
import org.apache.http.impl.client.DefaultHttpClient;
import org.apache.http.message.BasicNameValuePair;
import org.apache.http.params.BasicHttpParams;
import org.apache.http.params.HttpConnectionParams;
import org.apache.http.params.HttpParams;
import org.json.JSONException;
import org.json.JSONObject;
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.util.ArrayList;
import java.util.List;
public class MainActivity extends ActionBarActivity {
protected EditText username;
private EditText password;
protected String enteredUsername;
private final String serverUrl = "your path here";
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
username = (EditText)findViewById(R.id.username_field);
password = (EditText)findViewById(R.id.password_field);
Button loginButton = (Button)findViewById(R.id.login);
Button registerButton = (Button)findViewById(R.id.register_button);
loginButton.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
enteredUsername = username.getText().toString();
String enteredPassword = password.getText().toString();
if(enteredUsername.equals("") || enteredPassword.equals("")){
Toast.makeText(MainActivity.this, "Username or password must be filled", Toast.LENGTH_LONG).show();
return;
}
if(enteredUsername.length() <= 1 || enteredPassword.length() <= 1){
Toast.makeText(MainActivity.this, "Username or password length must be greater than one", Toast.LENGTH_LONG).show();
return;
//request authentication with remote server4
AsyncDataClass asyncRequestObject = new AsyncDataClass();
asyncRequestObject.execute(serverUrl, enteredUsername, enteredPassword);
}
});
registerButton.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
Intent intent = new Intent(MainActivity.this, RegisterActivity.class);
startActivity(intent);
}
});
}
@Override
public boolean onCreateOptionsMenu(Menu menu) {
//Inflate the menu; this adds items to the action bar if it is present.
getMenuInflater().inflate(R.menu.menu_main, 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();
//noinspection SimplifiableIfStatement
if (id == R.id.action_settings) {
return true;
}
return super.onOptionsItemSelected(item);
}
private class AsyncDataClass extends AsyncTask<String, Void, String> {
@Override
protected String doInBackground(String... params) {
HttpParams httpParameters = new BasicHttpParams();
HttpConnectionParams.setConnectionTimeout(httpParameters, 5000);
HttpConnectionParams.setSoTimeout(httpParameters, 5000);
HttpClient httpClient = new DefaultHttpClient(httpParameters);
HttpPost httpPost = new HttpPost(params[0]);
String jsonResult = "";
try {
List<NameValuePair> nameValuePairs = new ArrayList<NameValuePair>(2);
nameValuePairs.add(new BasicNameValuePair("username", params[1]));
nameValuePairs.add(new BasicNameValuePair("password", params[2]));
httpPost.setEntity(new UrlEncodedFormEntity(nameValuePairs));
HttpResponse response = httpClient.execute(httpPost);
jsonResult = inputStreamToString(response.getEntity().getContent()).toString();
} catch (ClientProtocolException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
return jsonResult;
}
@Override
protected void onPreExecute() {
super.onPreExecute();
}
@Override
protected void onPostExecute(String result) {
super.onPostExecute(result);
System.out.println("Resulted Value: " + result);
if(result.equals("") || result == null){
Toast.makeText(MainActivity.this, "Server connection failed", Toast.LENGTH_LONG).show();
return;
}
int jsonResult = returnParsedJsonObject(result);
if(jsonResult == 0){
Toast.makeText(MainActivity.this, "Invalid username or password", Toast.LENGTH_LONG).show();
return;
}
if(jsonResult == 1){
Intent intent = new Intent(MainActivity.this, LoginActivity.class);
intent.putExtra("USERNAME", enteredUsername);
intent.putExtra("MESSAGE", "You have been successfully login");
startActivity(intent);
}
}
private StringBuilder inputStreamToString(InputStream is) {
String rLine = "";
StringBuilder answer = new StringBuilder();
BufferedReader br = new BufferedReader(new InputStreamReader(is));
try {
while ((rLine = br.readLine()) != null) {
answer.append(rLine);
}
} catch (IOException e) {
//TODO Auto-generated catch block
e.printStackTrace();
}
return answer;
}
}
private int returnParsedJsonObject(String result){
JSONObject resultObject = null;
int returnedResult = 0;
try {
resultObject = new JSONObject(result);
returnedResult = resultObject.getInt("success");
} catch (JSONException e) {
e.printStackTrace();
}
return returnedResult;
}
}
Ich bin mit WampServer mit user="root"
und password=""
- Ihre Frage in seiner jetzigen form nicht viel Sinn. Wenn Sie eine konkrete Frage haben, sondern was Sie Lesen in einem blog-Beitrag oder eine Website, möchten Sie vielleicht zu Fragen, dass es als Kommentar.
- Aber ich habe auch kommentiert es, sir, und keine Antwort.. Gleiche problem, geweckt von anderen Usern dort... ich möchte nur wissen, wo ist die serverUrl kam aus... ich weiß nicht Weg.. bitte helfen Sie mir, sir..
- Wenn Sie sehr genau hinsehen, werden Sie sehen, dass es nicht jede Bezugnahme auf die serverUrl in der code, den Sie geschrieben haben.
- sorry sir, ich klebte die falsche Aktivität, in der MainActivity.java sir, nehmen Sie einen Blick auf meine post bearbeitet.. bitte ich wirklich brauchen, um kennen den Weg, Ive erstellte db auf wamp, und ich habe php-Dateien auf einem www-Verzeichnis..
Du musst angemeldet sein, um einen Kommentar abzugeben.
"Der Weg" ist wohl die URL Ihrer lokalen web-server, das ist:
http://your_ip/your_path_to_your_php_script
Dank @e4c5 (für die Anregungen) und @Laser für die Antwort(en).
Ich es gelöst!
Also für die andere, die stolpern das problem, check this out! ^_^
Gehen cmd >> Typ
ipconfig
>> dann schau IPv4-Adresse...Dann fügen Sie es auf
private final String serverUrl = "your path here"
Ersetzen
your path here
mithttp://192.168.1.8/android_user_api/index.php
Danke Jungs!
Happy Coding!
müssen Sie finden, Ihre IPV4-Adresse Ihres Computers, führen Sie die Eingabeaufforderung auf Ihrem computer(Windows-Schaltfläche start und start-typig cmd) und "ipconfig" eingeben und enter um zu sehen, Ihre IPV4-Adresse von Ihrem computer.
Erfolgreich Läuft WAMP-server auf Ihren computer signalisiert ein grünes Symbol auf der Taskleiste, klicken Sie auf diesen, mit einem pop-up-Menü klicken Sie auf online gestellt Element. Warten Sie einige Sekunden für die Bearbeitung seiner Aufgabe.
Testen Sie Ihre app für PHP MySQL in Ihrem android-studio emulator, geben Sie einfach die Adresse als
http:\\IP Address\
gefolgt vom Pfad zu Ihrem PHP-Datei in Ihrem code.Beispiel:
http:\\192.168.1.7\test\example.php