[英]How to read the php echo into string in Android?
如何在Android中將php echo讀入字符串?
我想獲得成功或失敗的回聲響應。
如果用戶登錄頁面,如果用戶名在數據庫中不匹配,則不應允許用戶登錄並顯示一些失敗消息。
MainActivity類
public class MainActivity extends Activity implements OnClickListener {
EditText name,number;
Button login;
SetContact contact;
Boolean isInternetPresent = false;
ConnectionDetector cd;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.contact);
cd = new ConnectionDetector(getApplicationContext());
name = (EditText) findViewById(R.id.etname);
number = (EditText) findViewById(R.id.etnumber);
login = (Button) findViewById(R.id.login);
login.setOnClickListener(this);
}
public static String POST(String url, SetContact contact){
InputStream inputStream = null;
String result = "";
try {
HttpClient httpclient = new DefaultHttpClient();
HttpPost httpPost = new HttpPost(url);
String json = "";
JSONObject jsonObject = new JSONObject();
jsonObject.accumulate("name", contact.getName());
jsonObject.accumulate("number", contact.getNumber());
json = jsonObject.toString();
StringEntity se = new StringEntity(json);
httpPost.setEntity(se);
httpPost.setHeader("Accept", "application/json");
httpPost.setHeader("Content-type", "application/json");
HttpResponse httpResponse = httpclient.execute(httpPost);
inputStream = httpResponse.getEntity().getContent();
if(inputStream != null)
result = convertInputStreamToString(inputStream);
else
result = "Did not work!";
} catch (Exception e) {
Log.d("InputStream", e.getLocalizedMessage());
}
return result;
}
public void onClick(View view) {
String username = name.getText().toString();
String password = number.getText().toString();
/* if(username.equals("name") && password.equals("number")){
Toast.makeText(getBaseContext(), "Username and password incorrect", Toast.LENGTH_LONG).show();
} */
/*else {
Toast.makeText(getBaseContext(), "Username does not exist. Please register.", Toast.LENGTH_LONG).show();
} */
switch(view.getId()){
case R.id.login:
if(!validate()) {
Toast.makeText(getBaseContext(), "Please Enter Valid data!", Toast.LENGTH_LONG).show();
} else {
new HttpAsyncTask().execute("myurl?name="+username+"&number="+password);
}
break;
}
}
private class HttpAsyncTask extends AsyncTask<String, Void, String> {
@Override
protected String doInBackground(String... urls) {
contact = new SetContact();
contact.setName(name.getText().toString());
contact.setNumber(number.getText().toString());
return POST(urls[0],contact);
}
protected void onPostExecute(String result) {
isInternetPresent = cd.isConnectingToInternet();
if (isInternetPresent) {
Toast.makeText(getBaseContext(), "Thanks for the Mail, We will Reply you soon", Toast.LENGTH_LONG).show();
name.setText("");
number.setText("");
Intent in = new Intent(getApplicationContext(), Updates.class);
startActivity(in);
} else {
showAlertDialog(MainActivity.this, "No Internet Connection", "Please Connect Internet.", false);
}
}
}
private boolean validate(){
if(name.length() > 25){
Toast.makeText(getApplicationContext(), "pls enter less the 25 characher in user name", Toast.LENGTH_SHORT).show();
return true;
}
else if(name.length() == 0 || number.length() == 0 ){
Toast.makeText(getApplicationContext(), "pls fill the empty fields", Toast.LENGTH_SHORT).show();
return false;
}
else if(number.length() < 6 || number.length() > 13){
number.setError("Not Valid Phone Number");
return false;
}
return true;
}
private static String convertInputStreamToString(InputStream inputStream) throws IOException{
BufferedReader bufferedReader = new BufferedReader( new InputStreamReader(inputStream));
String line = "";
String result = "";
while((line = bufferedReader.readLine()) != null)
result += line;
inputStream.close();
return result;
}
@SuppressWarnings("deprecation")
public void showAlertDialog(Context context, String title, String message, Boolean status) {
AlertDialog alertDialog = new AlertDialog.Builder(context).create();
alertDialog.setTitle(title);
alertDialog.setMessage(message);
alertDialog.setIcon((status) ? R.drawable.fail : R.drawable.fail);
alertDialog.setButton("OK", new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int which) {
}
});
alertDialog.show();
}
}
嘗試這個
HttpResponse response = client.execute(httpPost);
String responseBody = EntityUtils.toString(response.getEntity());
提示:我在php中使用Print而不是echo
您應該使用JSON而不是字符串。
我使用JsonSimple庫將其解析為對象。
這是我的示例代碼:
HashMap<String, String> urlParams = new HashMap<String, String>();
urlParams.put("KEY", Value);
String result = "-1";
try {
result = rest.POST(host, "Response.php", this.header,
urlParams, 3000);
} catch (URISyntaxException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
JSONObject json = new JSONObject();
try {
json = (JSONObject) new JSONParser().parse(result);
return json.get("value_you_want").toString();
} catch (ParseException e) {
return ("Error parsing " + e.getMessage());
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.