2017-07-14 92 views
0

我想在一个应用程序,讲述了一个远程MySQL数据库的一些值设置为从1到0的Android的AsyncTask更新查询远程MySQL服务器

这就是所谓的resetSentValues.php PHP脚本并运行从AsyncTask一个简单的查询当我在浏览器中访问该文件时,数据库中的值会更改。所以我可以说脚本起作用。

我想要的是,我可以点击一个按钮,并重置我的数据库中的所有值(使用工作脚本)。我试图用一个简单的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对象,以便连接起作用。但我只想通过点击一下按钮来执行这个脚本。

非常感谢您抽出时间!

+0

你只是打开一个连接,但没有任何获取或发布网址的请求。 –

+0

我只想运行php文件,我想我忘了调用'urlConnectionMsgStateReset.connect();' ?我现在要试试这个。 – robertjuh

+0

,我做了urlConnectionMsgStateReset.setRequestMethod(“POST”); – robertjuh

回答

0
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脚本运行。