php - Android Asynctask更新查询远程mysql服务器

标签 php android mysql android-asynctask

我想从应用程序中的 AsyncTask 运行一个简单查询,告诉远程 MYSQL 数据库将一些值设置为 1 到 0。

这是一个名为 resetSentValues.php 的 php 脚本,当我在浏览器中访问该文件时,数据库中的值会发生变化。所以我可以说该脚本有效。

我想要的是,我可以单击一个按钮,数据库中的所有值都会被重置(使用工作脚本)。我尝试使用一个简单的 AsyncTask 如下:

public class MessageSentResetter extends AsyncTask<Void, String, String> {
    private URL urlMsgtSateResetScript;
    HttpURLConnection urlConnectionMsgStateReset = null;

    @Override
    protected void onPreExecute() {
        try {
            urlMsgtSateResetScript = new URL("http://freerunnl.nl/smsSender/webservice/resetSentValues.php");
            System.out.println("message sent resetter on pre execute tried");
        } catch (MalformedURLException e) {
            e.printStackTrace();
        }

        super.onPreExecute();
    }

    @Override
    protected String doInBackground(Void... voids) {
        try {
            urlConnectionMsgStateReset = (HttpURLConnection) urlMsgtSateResetScript.openConnection();
        } catch (IOException e) {
            e.printStackTrace();
        }

        return null;
    }

    @Override
    protected void onPostExecute(String s) {
        System.out.println("Onpostexecute is reached, now disconnect the httpurlconnection");
        urlConnectionMsgStateReset.disconnect();
        super.onPostExecute(s);
    }
}

我这样调用它:

@RequiresApi(api = Build.VERSION_CODES.LOLLIPOP)
private void sendSMS() {
    MessageSentResetter resetter = new MessageSentResetter();
    resetter.execute();

    Toast.makeText(MainActivity.this, "The message sent values are reset", Toast.LENGTH_LONG).show();
}

点击事件的实例化如下:

btnSendSMS.setOnClickListener(new OnClickListener() {
    @RequiresApi(api = Build.VERSION_CODES.LOLLIPOP)
    public void onClick(View view) {
        sendSMS();
    }
});

有什么建议吗?我已经对其进行了类似的设置,以便我可以从数据库中选择和解析 JSON 对象,以便连接正常工作。但我现在只想通过单击一个简单的按钮来执行此脚本。

非常感谢您抽出宝贵的时间!

最佳答案

public class MessageSentResetter extends AsyncTask<Void, String, String> {
private URL urlMsgtSateResetScript;
//HttpURLConnection urlConnectionMsgStateReset = null;
HttpURLConnection urlConnectionMsgStateReset;


@Override
protected void onPreExecute() {
    super.onPreExecute();



}

@Override
protected String doInBackground(Void... voids) {

    try {
        urlMsgtSateResetScript = new URL("http://freerunnl.nl/smsSender/webservice/resetValues.php");
    } catch (MalformedURLException e) {
        e.printStackTrace();
        return "exception";
    }


    try {
        urlConnectionMsgStateReset = (HttpURLConnection) urlMsgtSateResetScript.openConnection();
        urlConnectionMsgStateReset.setReadTimeout(15000);
        urlConnectionMsgStateReset.setRequestMethod("POST");

        urlConnectionMsgStateReset.setDoInput(true);
        urlConnectionMsgStateReset.setDoOutput(true);



        urlConnectionMsgStateReset.connect();


    } catch (IOException e) {
        e.printStackTrace();
    }

    try {
        int response_code = urlConnectionMsgStateReset.getResponseCode();
        System.out.println("The response code for the resetter is");
        System.out.println(response_code);
    } catch (IOException e) {
        e.printStackTrace();
    }

    return null;
}

@Override
protected void onPostExecute(String s) {
    System.out.println("Onpostexecute is reached, now disconnect the httpurlconnection");
    urlConnectionMsgStateReset.disconnect();
    super.onPostExecute(s);
    }
}

它现在可以工作了,当我点击一个按钮时,我的服务器上的 php 脚本就会运行。

关于php - Android Asynctask更新查询远程mysql服务器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45110078/

相关文章:

javascript - 当用户单击 'submit' 按钮时捕获信息到日志文件

android - 如何从网络将应用程序直接安装到设备

mysql - 使用 PhpMyAdmin 导出的 sql 文件包含错误消息

php - Highcharts 自定义 PHP/MySQL

php - query_posts() 应该避免吗?

android - 我用Android Studio生成的APK无法正常工作

android - Unity更新到编辑器2021.3.4f1后无法构建

mysql - SQL、AND、OR 在一条语句中

mysql - 从表中选择最新数据

php - 在 Woocommerce 结帐页面中添加信息丰富的自定义消息