Android socketfailed:eaccess(权限被拒绝)
我正在使用java和PHP尝试与PHP MySQL(xampp)建立连接。正在尝试从注册表中保存到数据库中。但是继续获取此套接字失败:单击“注册”按钮时出现访问错误。正在搜索其他线程。还是不行。我正在将我的应用程序调试到我的联想API 22,而不是通过虚拟设备。我错过了什么?是IP吗?我也试着改变我的手机IP,但还是不行。请帮忙 这是我的登录类Android socketfailed:eaccess(权限被拒绝),android,mysql,permissions,socketexception,Android,Mysql,Permissions,Socketexception,我正在使用java和PHP尝试与PHP MySQL(xampp)建立连接。正在尝试从注册表中保存到数据库中。但是继续获取此套接字失败:单击“注册”按钮时出现访问错误。正在搜索其他线程。还是不行。我正在将我的应用程序调试到我的联想API 22,而不是通过虚拟设备。我错过了什么?是IP吗?我也试着改变我的手机IP,但还是不行。请帮忙 这是我的登录类 public class LoginActivity extends AppCompatActivity { EditText username, p
public class LoginActivity extends AppCompatActivity {
EditText username, password;
String Username, Password;
Context ctx = this;
String NAME = null, ADDRESS= null, MOBILE_NUMBER = null,USERNAME = null, PASSWORD = null, EMAIL = null;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_login);
username = (EditText) findViewById(R.id.login_username);
//mEmailView.setPaintFlags(mEmailView.getPaintFlags() | Paint.UNDERLINE_TEXT_FLAG);
password = (EditText) findViewById(R.id.login_password);
//mPasswordView.setPaintFlags(mPasswordView.getPaintFlags() | Paint.UNDERLINE_TEXT_FLAG)
}
public void login_register(View v) {
startActivity(new Intent(LoginActivity.this, RegisterActivity.class));
}
public void login_signin(View v) {
Username = username.getText().toString();
Password = password.getText().toString();
BackGround b = new BackGround();
b.execute(Username, Password);
}
class BackGround extends AsyncTask<String, String, String> {
/**Button btn_register = (Button) findViewById(R.id.btn_register);
btn_register.setOnClickListener(new OnClickListener() {
@Override public void onClick(View v) {
Intent i = new Intent(LoginActivity.this,RegisterActivity.class);
startActivity(i);
}
}); */
/** Button btn_signin = (Button) findViewById(R.id.btn_signin);
btn_signin.setOnClickListener(new OnClickListener() {
@Override public void onClick(View view) {
Intent i = new Intent(LoginActivity.this,MenuActivity.class);
startActivity(i);
//buttonnya dsni tapi aksinya dibawah
/** attemptLogin();
}
}); */
@Override
protected String doInBackground(String... params) {
String username = params[0];
String password = params[1];
String data = "";
int tmp;
try {
URL url = new URL("http://10.0.2.2/MYCODE/konserfutsal/login.php");
String urlParams = "username="+username+"&password="+password;
HttpURLConnection httpURLConnection = (HttpURLConnection) url.openConnection();
httpURLConnection.setDoOutput(true);
OutputStream os = httpURLConnection.getOutputStream();
os.write(urlParams.getBytes());
os.flush();
os.close();
InputStream is = httpURLConnection.getInputStream();
while ((tmp = is.read()) != -1) {
data += (char) tmp;
}
is.close();
httpURLConnection.disconnect();
return data;
} catch (MalformedURLException e) {
e.printStackTrace();
return "Exception: " + e.getMessage();
} catch (IOException e) {
e.printStackTrace();
return "Exception: " + e.getMessage();
}
}
@Override
protected void onPostExecute (String s){
String err = null;
try {
JSONObject root = new JSONObject(s);
JSONObject user_data = root.getJSONObject("user_data");
NAME = user_data.getString("name");
EMAIL = user_data.getString("email");
ADDRESS = user_data.getString("address");
MOBILE_NUMBER = user_data.getString("mobile_number");
USERNAME = user_data.getString("username");
PASSWORD = user_data.getString("password");
} catch (JSONException e) {
e.printStackTrace();
err = "Exception: " + e.getMessage();
}
Intent i = new Intent(ctx, MenuActivity.class);
i.putExtra("name", NAME);
i.putExtra("email", EMAIL);
i.putExtra("address", ADDRESS);
i.putExtra("mobile_number", MOBILE_NUMBER);
i.putExtra("username", USERNAME);
i.putExtra("password", PASSWORD);
i.putExtra("err", err);
startActivity(i);
}
}
}
公共类LoginActivity扩展了AppCompatActivity{
编辑文本用户名、密码;
字符串用户名、密码;
上下文ctx=此;
字符串名称=null,地址=null,手机号码=null,用户名=null,密码=null,电子邮件=null;
@凌驾
创建时受保护的void(Bundle savedInstanceState){
super.onCreate(savedInstanceState);
setContentView(R.layout.activity\u登录);
用户名=(EditText)findViewById(R.id.login\u用户名);
//mEmailView.setPaintFlags(mEmailView.getPaintFlags()| Paint.UNDERLINE_TEXT_FLAG);
密码=(EditText)findViewById(R.id.login\u密码);
//mPasswordView.setPaintFlags(mPasswordView.getPaintFlags()| Paint.UNDERLINE_TEXT_FLAG)
}
公共无效登录注册(视图五){
startActivity(新意图(LoginActivity.this、RegisterActivity.class));
}
公共无效登录(视图v){
Username=Username.getText().toString();
Password=Password.getText().toString();
背景b=新背景();
b、 执行(用户名、密码);
}
类后台扩展异步任务{
/**按钮btn_寄存器=(按钮)findViewById(R.id.btn_寄存器);
btn_register.setOnClickListener(新的OnClickListener(){
@覆盖公共void onClick(视图v){
意图i=新意图(LoginActivity.this,RegisterActivity.class);
星触觉(i);
}
}); */
/**按钮btn\u sign=(按钮)findViewById(R.id.btn\u sign);
btn_sign.setOnClickListener(新的OnClickListener(){
@覆盖公共void onClick(视图){
意图i=新意图(LoginActivity.this,menuaActivity.class);
星触觉(i);
//但这一点很重要
/**尝试登录();
}
}); */
@凌驾
受保护的字符串doInBackground(字符串…参数){
字符串username=params[0];
字符串密码=参数[1];
字符串数据=”;
int tmp;
试一试{
URL=新URL(“http://10.0.2.2/MYCODE/konserfutsal/login.php");
字符串urlParams=“username=“+username+”&password=“+password;
HttpURLConnection HttpURLConnection=(HttpURLConnection)url.openConnection();
httpURLConnection.setDoOutput(true);
OutputStream os=httpURLConnection.getOutputStream();
write(urlParams.getBytes());
os.flush();
os.close();
InputStream=httpURLConnection.getInputStream();
而((tmp=is.read())!=-1){
数据+=(字符)tmp;
}
is.close();
httpURLConnection.disconnect();
返回数据;
}捕获(格式错误){
e、 printStackTrace();
return“Exception:+e.getMessage();
}捕获(IOE异常){
e、 printStackTrace();
return“Exception:+e.getMessage();
}
}
@凌驾
受保护的void onPostExecute(字符串s){
字符串err=null;
试一试{
JSONObject根=新的JSONObject;
JSONObject user_data=root.getJSONObject(“用户_数据”);
NAME=user_data.getString(“NAME”);
EMAIL=user_data.getString(“电子邮件”);
ADDRESS=user_data.getString(“地址”);
MOBILE_NUMBER=user_data.getString(“MOBILE_NUMBER”);
USERNAME=user_data.getString(“用户名”);
PASSWORD=user_data.getString(“密码”);
}捕获(JSONException e){
e、 printStackTrace();
err=“异常:”+e.getMessage();
}
意向i=新意向(ctx,MenuActivity.class);
i、 putExtra(“名称”,名称);
i、 putExtra(“电子邮件”,email);
i、 putExtra(“地址”,地址);
i、 putExtra(“手机号码”,手机号码);
i、 putExtra(“用户名”,用户名);
i、 putExtra(“密码”,password);
i、 putExtra(“err”,err);
星触觉(i);
}
}
}
这是我的注册课
public class RegisterActivity extends AppCompatActivity {
EditText name, password, username, email, mobile_number, address;
String Name, Password, Username, Email, Mobile_number, Address;
Button btn_back;
Context ctx=this;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_register);
name = (EditText) findViewById(R.id.register_name);
email = (EditText) findViewById(R.id.register_email);
address = (EditText) findViewById(R.id.register_address);
mobile_number = (EditText) findViewById(R.id.register_mobile_number);
username = (EditText) findViewById(R.id.register_username);
password = (EditText) findViewById(R.id.register_pass);
btn_back = (Button) findViewById(R.id.register_btn_back);
btn_back.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
finish();
}
});
}
public void register_register (View V){
Name = name.getText().toString();
Email = email.getText().toString();
Address = address.getText().toString();
Mobile_number = mobile_number.getText().toString();
Username = username.getText().toString();
Password = password.getText().toString();
Background b = new Background();
b.execute(Name, Email, Address, Mobile_number, Username, Password);
}
class Background extends AsyncTask<String, String, String> {
@Override
protected String doInBackground(String... params) {
String name = params[0];
String email = params[1];
String address = params[2];
String mobile_number = params[3];
String username = params[4];
String password = params[5];
String data="";
int tmp;
try {
URL url = new URL("http://10.0.2.2/MYCODE/konserfutsal/register.php");
String urlParams = "name="+name+"&email="+email+"&address="+address+"&mobile_number="+mobile_number+"&username="+username+"&password="+password;
HttpURLConnection httpURLConnection = (HttpURLConnection) url.openConnection();
httpURLConnection.setDoOutput(true);
OutputStream os = httpURLConnection.getOutputStream();
os.write(urlParams.getBytes());
os.flush();
os.close();
InputStream is = httpURLConnection.getInputStream();
while((tmp=is.read())!=-1){
data+= (char)tmp;
}
is.close();
httpURLConnection.disconnect();
return data;
} catch (MalformedURLException e) {
e.printStackTrace();
return "Exception: "+e.getMessage();
} catch (IOException e) {
e.printStackTrace();
return "Exception: "+e.getMessage();
}
}
@Override
protected void onPostExecute(String s) {
if(s.equals("")){
s="Data saved successfully.";
}
Toast.makeText(ctx, s, Toast.LENGTH_LONG).show();
}
}
}
公共类注册表活动扩展了AppCompatActivity{
编辑文本名称、密码、用户名、电子邮件、手机号码、地址;
字符串名称、密码、用户名、电子邮件、手机号码、地址;
按钮btn_后退;
上下文ctx=此;
@凌驾
创建时受保护的void(Bundle savedInstanceState){
super.onCreate(savedInstanceState);
setContentView(R.layout.activity\u寄存器);
name=(EditText)findViewById(R.id.register\u name);
email=(EditText)findViewById(R.id.register\u email);
地址=(EditText)findViewById(R.id.register\u地址);
手机号码=(EditText)findViewById(R.id.register\u手机号码);
用户名=(EditText)findViewById(R.id.register\u用户名);
密码=(EditText)findViewById(R.id.register\u pass);
btn\u back=(按钮)findviewbyd(R.id.register\u btn\u back);
btn_back.setOnClickListener(新视图.OnClickListener(){
@凌驾
公共void onClick(视图v){
完成();
}
});
}
公共无效登记簿\登记簿(视图五){
Name=Name.getText().toString();
Email=Email.getText().toString();
Address=Address.getText().toString();
Mobile_number=Mobile_number.getText().toString();
Username=Username.getText().toString();
Password=Password.getText().toString();
背景b=新背景();
b、 执行(姓名、电子邮件、地址、手机号码、用户名、密码);
}
类后台扩展异步任务{
@凌驾
受保护的字符串doInBackground(字符串…参数){
字符串名称=参数[0];
字符串email=params[1];
字符串地址=
<uses_permission android:name="android.permission.INETERNET" />
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
<uses-permission android:name="android.permission.ACCESS_WIFI_STATE" />
<?php
error_reporting(0);
$db_name = "konserfutsal";
$mysql_user = "root";
$mysql_pass = "";
$server_name = "localhost";
$con = mysqli_connect($server_name, $mysql_user, $mysql_pass, $db_name);
if(!$con){
echo '{"message":"Unable to connect to the database."}';
}
?>
error_reporting(0);
$db_name = "konserfutsal";
$mysql_user = "root";
$mysql_pass = "";
$server_name = "localhost";
$con = mysqli_connect($server_name, $mysql_user, $mysql_pass, $db_name);
if(!$con){
echo '{"message":"Unable to connect to the database."}';
}
?>
<?php
error_reporting(0);
require "init.php";
$username = $_POST["username"];
$password = $_POST["password"];
//$name = "sdf";
//$password = "sdf";
$sql = "SELECT * FROM `user_info` WHERE `username`='".$username."' AND `password`='".$password."';";
$result = mysqli_query($con, $sql);
$response = array();
while($row = mysqli_fetch_array($result))
{
$response = array("id"=>$row[0],"name"=>$row[1],"email"=>$row[2],"address"=>$row[3],"mobile_number"=>$row[4],"username"=>$row[5],"password"=>$row[6]);
}
echo json_encode(array("user_data"=>$response));
?>
<?php
error_reporting(0);
require "init.php";
$name = $_POST["name"];
$email = $_POST["email"];
$address = $_POST["address"];
$mobile_number = $_POST["mobile_number"];
$username = $_POST["username"];
$password = $_POST["password"];
//$name = "sdf";
//$password = "sdf";
//$email = "sdf@r54";
$sql = "INSERT INTO `user_info` (`id`,`name`,`email`,`address`,`mobile_number`,`username`,`password`) VALUES (NULL, '".$name."', '".$email."', '".$address."', '".$mobile_number."', '".$username."', '".$password."');";
if(!mysqli_query($con, $sql)){
echo '{"message":"Unable to save the data to the database."}';
}
?>