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

问题描述 投票:0回答:1

我是Android的初学者,我正在尝试从edittext获取一些信息,并将其发送到我的localhost,如果我的Localdatabase设置为响应某些内容,但无论我做了什么,它都不起作用,并且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"
?>
php android sql urlencode outputstream
1个回答
0
投票

哇,我很高兴找到这个问题的原因,没有什么从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();

我希望我的这个问题和这个答案可以帮助另一个人。

祝大家好运。

© www.soinside.com 2019 - 2024. All rights reserved.