如何将输入信息从android studio发送到本地数据库

How sent input information to Localdatabase from androidstodio

我是 Android 的初学者,我正在尝试一个例子,从编辑文本中获取一些信息并将其发送到我的本地主机,如果我的本地数据库 isset 所以回显了一些东西,但无论我做了什么,它都不起作用,当我用调试器检查它时,OutputStreamWriter 在 Android Studio 中工作,但没有发送到我的本地数据库。

下面分享我的代码。错误是 $_POST["email"] 不起作用,错误是电子邮件未定义?!

//It's my MainActivity's codes

public class MainActivity extends AppCompatActivity {
Button show;
TextView txt;
EditText edt;
public static Context context;


@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);

    context=MainActivity.this;
    edt=(EditText)findViewById(R.id.edt);
    show=(Button)findViewById(R.id.show);
    txt=(TextView)findViewById(R.id.txt);

    show.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View view) {
            new AsynctaskTest("http://152.144.1.215/sadegh",edt.getText().toString()).execute();

        }
    });
}

}

这是我的 AsynctaskGetData 代码:

public class AsynctaskTest extends AsyncTask<String,Integer,String>{

public String link="";
public String email="";
public StringBuilder builder;
ProgressDialog progressDialog;

public AsynctaskTest(String link,String email){
    this.link=link;
    this.email=email;

}

@Override
protected void onPreExecute() {
    super.onPreExecute();
    progressDialog=new ProgressDialog(MainActivity.context);
    progressDialog.setTitle("Processing...");
    progressDialog.setMessage("Please Wait...");
    progressDialog.show();
}

@Override
protected String doInBackground(String... strings) {
    try {
        String data=URLEncoder.encode("email","UTF-8")+"="+URLEncoder.encode(email,"UTF-8");
        URL url=new URL(link);
        URLConnection connection=url.openConnection();

        connection.setDoOutput(true);
        OutputStreamWriter writer=new OutputStreamWriter(connection.getOutputStream());
        writer.write(data);
        writer.flush();

        BufferedReader reader=new BufferedReader(new InputStreamReader(connection.getInputStream()));
        builder=new StringBuilder();
        String line=null;
        while ((line=reader.readLine())!=null){
            builder.append(line);
        }


    } catch (MalformedURLException e) {
        e.printStackTrace();
    } catch (UnsupportedEncodingException e) {
        e.printStackTrace();
    } catch (IOException e) {
        e.printStackTrace();
    }
    return builder.toString();
}

@Override
protected void onPostExecute(String s) {
    super.onPostExecute(s);
    progressDialog.dismiss();
    Toast.makeText(MainActivity.context, s, Toast.LENGTH_SHORT).show();
}

@Override
protected void onProgressUpdate(Integer... values) {
    super.onProgressUpdate(values);
}

}

这是我的 php 代码

<?php
$email=$_POST["email"];

echo "hello"
?>

哇,我真的很高兴找到这个问题的原因,因为没有从 android studio 发送到我的本地数据库 这个问题是因为 MainActivity 中的这段代码:

new AsynctaskTest("http://152.144.1.215/sadegh",edt.getText().toString()).execute();

我们应该在 /sadegh 之后键入我们要向其发送信息的页面,如下所示:

new AsynctaskTest("http://152.144.1.215/sadegh/index.php",edt.getText().toString()).execute();

我希望我的这个问题和这个答案能帮助到其他人。

祝大家好运。