gpt4 book ai didi

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

转载 作者:行者123 更新时间:2023-11-29 18:38:18 25 4
gpt4 key购买 nike

我想从应用程序中的 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/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com