从EditText获取文本并在Android中使用HttpPost发送

时间:2016-02-20 07:03:34

标签: java android android-layout android-studio android-asynctask

public void onActivityResult(int requestCode, int resultCode, Intent intent) {

    if (requestCode == SCANNER_REQUEST_CODE) {
        // Handle scan intent
        if (resultCode == Activity.RESULT_OK) {
            // Handle successful scan
            String contents = intent.getStringExtra("SCAN_RESULT");
            String formatName = intent.getStringExtra("SCAN_RESULT_FORMAT");
            byte[] rawBytes = intent.getByteArrayExtra("SCAN_RESULT_BYTES");
            int intentOrientation = intent.getIntExtra("SCAN_RESULT_ORIENTATION", Integer.MIN_VALUE);
            Integer orientation = (intentOrientation == Integer.MIN_VALUE) ? null : intentOrientation;
            String errorCorrectionLevel = intent.getStringExtra("SCAN_RESULT_ERROR_CORRECTION_LEVEL");
            mBarcodeEdit.setText(contents + "\n\n" + formatName);
            tvScanResults.setText(contents + "\n\n" + formatName);

        } else if (resultCode == Activity.RESULT_CANCELED) {
            // Handle cancel

        }
    } else {
        // Handle other intents
    }

}

现在我将扫描的条形码转换为edittext以及textview,但我想将结果上传到服务器。我将在下面发布AsyncTask模块:

        public void send1(View v){
               new Send().execute();

          }
            class Send extends AsyncTask<String, Void,Void > {

 HttpClient httpclient;
 HttpPost httppost;
String msg = mBarcodeEdit.getText().toString().trim(); 
           protected Void doInBackground(String... urls) {
        // TODO Auto-generated method stub
         // get the message from the message text box
//   String msg = mBarcodeEdit.getText().toString().trim();
        //Toast.makeText(getBaseContext(),"u clicked           mee",Toast.LENGTH_SHORT).show();
        // make sure the fields are not empty
       if (msg.length()>0)
        {

            httpclient = new DefaultHttpClient();
            httppost = new HttpPost("http://yourwebsite.com/yourPhpScript.php"); // sever id
         try {
           List<NameValuePair> nameValuePairs = new ArrayList<NameValuePair>(2);
           nameValuePairs.add(new BasicNameValuePair("id", "12345"));
           nameValuePairs.add(new BasicNameValuePair("message", msg));
           httppost.setEntity(new UrlEncodedFormEntity(nameValuePairs));
           httpclient.execute(httppost);

         } catch (ClientProtocolException e) {
             // TODO Auto-generated catch block
         } catch (IOException e) {
             // TODO Auto-generated catch block
         }
        }
        else
        {
            // display message if text fields are empty
            //Toast.makeText(getBaseContext(),"All field are required",Toast.LENGTH_SHORT).show();
        }
    return null;
        }}

   protected void onProgressUpdate(Void... progress) {

          }

        protected void onPostExecute(Void result) {
            mBarcodeEdit.setText(""); // clear text box
         }
          }

1 个答案:

答案 0 :(得分:0)

考虑使用volley进行客户端 - 服务器通信。这是谷歌推荐的,最重要的是易于使用,并负责在后台使用服务器。如果你想知道怎么用截击检查这个。 http://www.androidhive.info/2014/05/android-working-with-volley-library-1/