使用post方法的建议

时间:2014-02-10 17:40:36

标签: android post

我非常接近解决phpMyAdmin连接,但仍然没有发生任何事情,没有错误,没有冻结。这有什么不对?或者也许在我的PHP代码中?

final String suma = Float.valueOf(zam.getSuma()).toString();

ib_wyslij.setOnClickListener(new OnClickListener() {

    @Override
    public void onClick(View v) {
        // TODO Auto-generated method stub

         new MyAsyncTask().execute(suma);
    }
});

private class MyAsyncTask extends AsyncTask<String, Integer, Double> {

    @Override
    protected Double doInBackground(String... params) {
        // TODO Auto-generated method stub
        postData(params[0]);
        return null;
    }

    protected void onPostExecute(Double result) {

        Toast.makeText(getApplicationContext(), "command sent",
                Toast.LENGTH_LONG).show();
    }

    public void postData(String valueIWantToSend) {

        // Create a new HttpClient and Post Header
        HttpClient httpclient = new DefaultHttpClient();
        HttpPost httppost = new HttpPost("http://www.kuba.ro/exeConn.php");

        try {
            // Add your data

            List<NameValuePair> nameValuePairs = new ArrayList<NameValuePair>();
            nameValuePairs.add(new BasicNameValuePair("Zam_suma",
                    valueIWantToSend));
            httppost.setEntity(new UrlEncodedFormEntity(nameValuePairs));

            // Execute HTTP Post Request
            HttpResponse response = httpclient.execute(httppost);

        }
        catch (ClientProtocolException e) {
            // TODO Auto-generated catch block
        }
        catch (IOException e) {
            // TODO Auto-generated catch block
        }
    }
}

我的PHP文件的一部分:

$Zam_suma = $_POST['Zam_suma'];

mysql_query("INSERT INTO Zamowienie(Zam_suma) VALUES($Zam_suma)");

2 个答案:

答案 0 :(得分:1)

  1. 你的asynctask中你需要什么样的参数Integer和Double?如果您只需要asynctask来发布字符串,则可以将Void用于其他参数:

    private class MyAsyncTask extends AsyncTask<String, Void, Void>
    
  2. @Override注释添加到onPostExecute()以覆盖该方法(请参阅Arjan的回答)。

  3. 在catch块中调用e.printStackTrace()以查看错误发生的时间,地点和原因。

  4. Good tutorial

答案 1 :(得分:-1)

对于您的PHP文件:

  1. 请务必通过PHP验证发布的项目,确保您使用的是正确的值 is_int is_string
  2. 如果您的值应该是int,请使用以下代码示例。

    if (is_int($_POST['example_value']) {
        $value = $_POST['example_value'];
    }
    

    此外,您不应该使用mysql_query,因为它几乎已被弃用。相反,您应该使用PDO mysqli