android 端
package yzxdemo.com.androidyapei;
import android.app.AlertDialog;
import android.content.Intent;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.util.Log;
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.json.JSONObject;
import java.io.ByteArrayInputStream;
import java.io.ByteArrayOutputStream;
import java.io.InputStream;
import java.net.HttpURLConnection;
import java.net.URL;
public class MainActivity extends AppCompatActivity {
private Button btnLogin;
private EditText userName,passWord;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
init();
btnLogin.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
if(userName.getText().toString().equals("")||passWord.getText().toString().equals("")){
Toast.makeText(MainActivity.this,"用户名或者密码不可为空,请检查",Toast.LENGTH_SHORT).show();
}else{
mythread();
}
}
});
}
public void mythread(){
final String connectUrl="http://sandbox.abbottm.com/androidapi";
new Thread(new Runnable() {
@Override
public void run() {
boolean result = gotoLogin(userName.getText().toString().trim(),passWord.getText().toString().trim(),connectUrl);
if(result){
Intent intent = new Intent();
intent.setClass(MainActivity.this,UserActivity.class);
startActivity(intent);
}else{
System.out.print("失败");
}
}
}).start();
}
private boolean gotoLogin(String userName, String password,String connectUrl) {
String result = null; //用来取得返回的String;
boolean isLoginSucceed = false;
//test
System.out.println("username:"+userName);
System.out.println("password:"+password);
String urlInString = connectUrl+"?username="+userName;
try {
URL url = new URL(urlInString);
HttpURLConnection conn = (HttpURLConnection) url.openConnection();
conn.setConnectTimeout(5 * 1000);
//这里POST和GET都可以
conn.setRequestMethod("GET");
InputStream inStream = conn.getInputStream();
if (conn != null && conn.getResponseCode() == 200) {
byte[] buffer = new byte[1024];
int readedByte = -1;
ByteArrayOutputStream byteStream = new ByteArrayOutputStream();
while ((readedByte = inStream.read(buffer)) > 0) {
byteStream.write(buffer, 0, readedByte);
}
byte[] resultInByte = byteStream.toByteArray();
String resultInString = new String(resultInByte, "UTF-8");
if(resultInString.equals("ok")){
isLoginSucceed=true;
}
// if (resultInString.startsWith("{")) {
// try {
// return new JSONObject(resultInString);
// } catch (JSONException e) {
// e.printStackTrace();
// }
// }
}
} catch (Exception e) {
e.printStackTrace();
}
//
发送post请求
// HttpPost httpRequest = new HttpPost(connectUrl);
Post运作传送变数必须用NameValuePair[]阵列储存
// List params = new ArrayList();
// params.add(new BasicNameValuePair("name",userName));
// params.add(new BasicNameValuePair("pwd",password));
// try{
发出HTTP请求
// httpRequest.setEntity(new UrlEncodedFormEntity(params,HTTP.UTF_8));
取得HTTP response
// HttpResponse httpResponse=new DefaultHttpClient().execute(httpRequest);
若状态码为200则请求成功,取到返回数据
// if(httpResponse.getStatusLine().getStatusCode()==200){
取出字符串
// result=EntityUtils.toString(httpResponse.getEntity());
// ystem.out.println("result= "+result);
// }
// }catch(Exception e){
// e.printStackTrace();
// }
判断返回的数据是否为php中成功登入是输出的
// if(result.equals("login succeed")){
// isLoginSucceed = true;
// }
return isLoginSucceed;
}
protected void init(){
btnLogin=(Button)findViewById(R.id.btn_login);
userName =(EditText) findViewById(R.id.edit_name);
passWord =(EditText) findViewById(R.id.edit_pwd);
}
@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);
}
}
php 端
<?php namespace App\Http\Controllers;
use App\Http\Controllers\Controller;
use App\User;
use Auth;
use Illuminate\Http\Request;
class WelcomeController extends Controller
{
public function index()
{
if (Auth::user()) {
return redirect('/manage');
} else {
return redirect('auth/login');
}
}
public function crontabtest()
{
echo date('Y-m-d H:i:s', time());
}
public function androidapi(Request $request)
{
$user = User::where('name', $request->username)->first();
if ($user) {
echo "ok";
} else {
echo "no";
}
exit;
}
}
android php 交互
最新推荐文章于 2021-03-10 08:16:38 发布