Android应用程序不通过PHP将值插入MySQL

时间:2015-07-26 11:40:23

标签: java php android mysql json

我正在创建一个应用程序,它通过存储在localhost的Wampserver的www文件夹中的PHP脚本执行事务。 但是当我执行事务时,值没有插入到数据库中,而logcat显示此错误:

07-26 16:55:54.036: E/Buffer Error(5511): Error converting result java.lang.NullPointerException
07-26 16:55:54.037: E/JSON Parser(5511): Error parsing data org.json.JSONException: End of input at character 0 of 

但我的应用程序甚至没有崩溃,并说交易成功,我的onPostExecute被称为AsyncTask。 请帮我找出导致数据库插入失败的错误。

我有两个课程JSONParserNewProductActivity,如下所示:

这是NewProductActivity.java:

public class NewProductActivity extends Activity {

    // Progress Dialog
    private ProgressDialog pDialog;

    JSONParser jsonParser = new JSONParser();

    // url to create new product use wireless lan adapter wifi ipv4 address using ipconfig
    // String url_create_product = "http://192.168.0.100/toll_system/create_product.php";

    // JSON Node names
    private static final String TAG_SUCCESS = "success";
        String first_name;
        String last_name;
        String toll_no;
        String toll_location;
        String trans_amt;
        String v_license_no;
        String make_model;
        String v_type;
        String email_id;

    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.add_product);
        TextView tv=(TextView)findViewById(R.id.textView1);
        String contents = getIntent().getStringExtra("KEY1");
        String ip_address=getIntent().getStringExtra("KEY2");
       /* String arr[]=contents.split(",");
        String trans_receipt_no=arr[0];
        String firstname=arr[1];
        String lastname=arr[2];
        String toll_no=arr[3];
        String toll_location=arr[4];
        String trans_amt=arr[5];
        String v_license_no=arr[6];
        String make_model=arr[7];
        String v_type=arr[8];*/
        Toast toast = Toast.makeText(this, "Content:" + contents , Toast.LENGTH_LONG);
        toast.show();
         new CreateNewProduct().execute(contents,ip_address);

    }

    /**
     * Background Async Task to Create new product
     * */
    class CreateNewProduct extends AsyncTask<String, String, String> {

        /**
         * Before starting background thread Show Progress Dialog
         * */
        @Override
        protected void onPreExecute() {
            super.onPreExecute();
            pDialog = new ProgressDialog(NewProductActivity.this);
            pDialog.setMessage("Woooohoooo...");
            Log.d("Perform:", "Performing");

            pDialog.setIndeterminate(false);
            pDialog.setCancelable(false);
            pDialog.show();
        }

        /**
         * Creating product
         * */
        protected String doInBackground(String... args) {
          //  String name = inputName.getText().toString();
          //  String price = inputPrice.getText().toString();
          //  String description = inputDesc.getText().toString();
              String contents=args[0];
              String ip_address=args[1];
              String arr[]=contents.split(",");
              Log.d("Inside doInBackground :", contents);
            //String trans_receipt_no=arr[0];
             first_name=arr[0];
            Log.d("First_name", first_name);
             last_name=arr[1];
            Log.d("Last_name", last_name);
             toll_no=arr[2];
             toll_location=arr[3];
             trans_amt=arr[4];
             v_license_no=arr[5];
             make_model=arr[6];
             v_type=arr[7];
             email_id=arr[8];
            // Building Parameters
            List<NameValuePair> params = new ArrayList<NameValuePair>();
           // params.add(new BasicNameValuePair("name", name));
            //params.add(new BasicNameValuePair("price", price));
            //params.add(new BasicNameValuePair("description", description));
           //  params.add(new BasicNameValuePair("trans_receipt_no", trans_receipt_no));
             params.add(new BasicNameValuePair("first_name", first_name));
             params.add(new BasicNameValuePair("last_name", last_name));
             params.add(new BasicNameValuePair("toll_no", toll_no));
             params.add(new BasicNameValuePair("toll_location", toll_location));
             params.add(new BasicNameValuePair("trans_amount", trans_amt));
             params.add(new BasicNameValuePair("v_license_no",  v_license_no));
             params.add(new BasicNameValuePair("v_make_model", make_model));
             params.add(new BasicNameValuePair("v_type", v_type));
             params.add(new BasicNameValuePair("email_id", email_id));
            // getting JSON Object
             String url_create_product = "http://"+ip_address+"/toll_system/create_product.php";
            // Note that create product url accepts POST method
            JSONObject json = jsonParser.makeHttpRequest(url_create_product,
                    "POST", params);


            // check log cat fro response
           // Log.d("Create Response", json.toString());

            // check for success tag
          /*  try {
                int success = json.getInt(TAG_SUCCESS);

                if (success == 1) {
                    // successfully created product
                  //  Intent i = new Intent(getApplicationContext(), AllProductsActivity.class);
                    //startActivity(i);
                    String s="Transaction done!";
                    Toast toast = Toast.makeText(getApplicationContext(),"Status:"+s, Toast.LENGTH_LONG);
                    toast.show();
                    // closing this screen
                    finish();
                } else {
                    Toast toast = Toast.makeText(getApplicationContext(),"Status:Failed", Toast.LENGTH_LONG);
                    toast.show();
                    // failed to create product
                }
            } catch (JSONException e) {
                e.printStackTrace();
            }
           */
                   return null;
        }

        /**
         * After completing background task Dismiss the progress dialog
         * **/
        protected void onPostExecute(String file_url) {
            // dismiss the dialog once done
             TextView tv=(TextView)findViewById(R.id.textView1);
             tv.setText("Transaction done!!!");
             TextView tv1=(TextView)findViewById(R.id.textView3);
             tv1.setText(first_name+" "+last_name);
             TextView tv2=(TextView)findViewById(R.id.textView5);
             tv2.setText(make_model);
             TextView tv3=(TextView)findViewById(R.id.textView7);
             tv3.setText(v_license_no);
             TextView tv4=(TextView)findViewById(R.id.textView9);
             tv4.setText("Rs."+trans_amt);
            pDialog.dismiss();
        }

    }
}

这是JSONParser:

public class JSONParser {

    static InputStream is = null;
    static JSONObject jObj = null;
    static String json = "";

    // constructor
    public JSONParser() {

    }

    // function get json from url
    // by making HTTP POST or GET mehtod
    public JSONObject makeHttpRequest(String url, String method,
            List<NameValuePair> params) {

        // Making HTTP request
        try {

            // check for request method
            if(method == "POST"){
                // request method is POST
                // defaultHttpClient
                DefaultHttpClient httpClient = new DefaultHttpClient();
                HttpPost httpPost = new HttpPost(url);
                httpPost.setEntity(new UrlEncodedFormEntity(params));

                HttpResponse httpResponse = httpClient.execute(httpPost);
                HttpEntity httpEntity = httpResponse.getEntity();
                is = httpEntity.getContent();

            }else if(method == "GET"){
                // request method is GET
                DefaultHttpClient httpClient = new DefaultHttpClient();
                String paramString = URLEncodedUtils.format(params, "utf-8");
                url += "?" + paramString;
                HttpGet httpGet = new HttpGet(url);

                HttpResponse httpResponse = httpClient.execute(httpGet);
                HttpEntity httpEntity = httpResponse.getEntity();
                is = httpEntity.getContent();
            }          

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

        try {
            BufferedReader reader = new BufferedReader(new InputStreamReader(
                    is, "iso-8859-1"), 8);
            StringBuilder sb = new StringBuilder();
            String line = null;
            while ((line = reader.readLine()) != null) {
                sb.append(line + "\n");
            }
            is.close();
            json = sb.toString();
        } catch (Exception e) {
            Log.e("Buffer Error", "Error converting result " + e.toString());
        }

        // try parse the string to a JSON object
        try {
            jObj = new JSONObject(json);
        } catch (JSONException e) {
            Log.e("JSON Parser", "Error parsing data " + e.toString());
        }

        // return JSON String
        return jObj;


        }
    }

0 个答案:

没有答案