1

我有代码 zxing 条码阅读器。我想从 msql 服务器检索有关条形码的数据。

  1. BarcodeScannerActivity
  2. 意图积分器
  3. 意图结果

我使用 json 从服务器检索数据,并且我已经成功完成了以下代码

public class CustomHttpClient {

    /** The time it takes for our client to timeout */

    public static final int HTTP_TIMEOUT = 30 * 1000; // milliseconds


    /** Single instance of HttpClient */

    private static HttpClient mHttpClient;


    /**

     * Get our single instance of our HttpClient object.

     *

     * @return an HttpClient object with connection parameters set

     */

    private static HttpClient getHttpClient() {

        if (mHttpClient == null) {

            mHttpClient = new DefaultHttpClient();

            final HttpParams params = mHttpClient.getParams();

            HttpConnectionParams.setConnectionTimeout(params, HTTP_TIMEOUT);

            HttpConnectionParams.setSoTimeout(params, HTTP_TIMEOUT);

            ConnManagerParams.setTimeout(params, HTTP_TIMEOUT);

        }

        return mHttpClient;

    }


    /**

     * Performs an HTTP Post request to the specified url with the specified

     * parameters.

     *

     * @param url

     *            The web address to post the request to

     * @param postParameters

     *            The parameters to send via the request

     * @return The result of the request

     * @throws Exception

     */

    public static String executeHttpPost(String url,ArrayList<NameValuePair> postParameters) throws Exception {

        BufferedReader in = null;

        try {

            HttpClient client = getHttpClient();

            HttpPost request = new HttpPost(url);

            UrlEncodedFormEntity formEntity = new UrlEncodedFormEntity(postParameters);

            request.setEntity(formEntity);

            HttpResponse response = client.execute(request);

            in = new BufferedReader(new InputStreamReader(response.getEntity().getContent()));





            StringBuffer sb = new StringBuffer("");

            String line = "";

            String NL = System.getProperty("line.separator");

            while ((line = in.readLine()) != null) {

                sb.append(line + NL);

            }

            in.close();


            String result = sb.toString();

            return result;

        } finally {

            if (in != null) {

                try {

                    in.close();

                } catch (IOException e) {

                    Log.e("log_tag", "Error converting result "+e.toString());

                    e.printStackTrace();

                }

            }

        }

    }


    /**

     * Performs an HTTP GET request to the specified url.

     *

     * @param url

     *            The web address to post the request to

     * @return The result of the request

     * @throws Exception

     */

    public static String executeHttpGet(String url) throws Exception {

        BufferedReader in = null;

        try {

            HttpClient client = getHttpClient();

            HttpGet request = new HttpGet();

            request.setURI(new URI(url));

            HttpResponse response = client.execute(request);

            in = new BufferedReader(new InputStreamReader(response.getEntity()

                    .getContent()));


            StringBuffer sb = new StringBuffer("");

            String line = "";

            String NL = System.getProperty("line.separator");

            while ((line = in.readLine()) != null) {

                sb.append(line + NL);

            }

            in.close();


            String result = sb.toString();

            return result;

        } finally {

            if (in != null) {

                try {

                    in.close();

                } catch (IOException e) {

                    Log.e("log_tag", "Error converting result "+e.toString());

                    e.printStackTrace();

                }

            }

        }

    }




public class JSONUseActivity extends Activity {
    EditText byear ;   // To take birthyear as input from user
    Button submit;
    TextView tv;
          int by= 1987;// TextView to show the result of MySQL query

    String returnString;   // to store the result of MySQL query after decoding JSON

    /** Called when the activity is first created. */
    @Override
    public void onCreate(Bundle savedInstanceState) {
        StrictMode.setThreadPolicy(new StrictMode.ThreadPolicy.Builder()
                .detectDiskReads().detectDiskWrites().detectNetwork() // StrictMode is most commonly used to catch accidental disk or network access on the application's main thread
                .penaltyLog().build());
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);

        byear =  (EditText) findViewById(R.id.editText1);
        submit = (Button) findViewById(R.id.submitbutton);
        tv = (TextView) findViewById(R.id.showresult);

        // define the action when user clicks on submit button
        submit.setOnClickListener(new View.OnClickListener(){
            public void onClick(View v) {
                // declare parameters that are passed to PHP script i.e. the name "birthyear" and its value submitted by user
                ArrayList<NameValuePair> postParameters = new ArrayList<NameValuePair>();

                // define the parameter
                postParameters.add(new BasicNameValuePair("birthyear", byear.getText().toString()));

                String response = null;

                // call executeHttpPost method passing necessary parameters
                try {
                    response = CustomHttpClient.executeHttpPost(
                            //"http://129.107.187.135/CSE5324/jsonscript.php", // your ip address if using localhost server
                            "http://srknysv.netai.net/dosyalar/jsonscript.php",  // in case of a remote server
                            postParameters);

                    // store the result returned by PHP script that runs MySQL query
                    String result = response.toString();

                    //parse json data
                    try{
                        returnString = "";
                        JSONArray jArray = new JSONArray(result);
                        for(int i=0;i<jArray.length();i++){
                            JSONObject json_data = jArray.getJSONObject(i);
                            Log.i("log_tag","id: "+json_data.getInt("id")+
                                    ", name: "+json_data.getString("name")+
                                    ", sex: "+json_data.getInt("sex")+
                                    ", birthyear: "+json_data.getInt("birthyear")
                            );
                            //Get an output to the screen
                            returnString += "\n" + json_data.getString("name") + " -> "+ json_data.getInt("birthyear");
                        }
                    }
                    catch(JSONException e){
                        Log.e("log_tag", "Error parsing data "+e.toString());
                    }

                    try{
                        tv.setText(returnString);
                    }
                    catch(Exception e){
                        Log.e("log_tag","Error in Display!" + e.toString());;
                    }
                }
                catch (Exception e) {
                    Log.e("log_tag","Error in http connection!!" + e.toString());
                }
            }
        });
    }

我的两个项目都运行良好

我从服务器获取值

postParameters.add(new BasicNameValuePair("birthyear", byear.getText().toString()));

条形码阅读器返回以下代码的意图`public final class IntentResult {

private final String contents;
private final String formatName;
private final byte[] rawBytes;
private final Integer orientation;
private final String errorCorrectionLevel;

IntentResult() {
    this(null, null, null, null, null);
}

IntentResult(String contents,
             String formatName,
             byte[] rawBytes,
             Integer orientation,
             String errorCorrectionLevel) {
    this.contents = contents;
    this.formatName = formatName;
    this.rawBytes = rawBytes;
    this.orientation = orientation;
    this.errorCorrectionLevel = errorCorrectionLevel;
}



@Override
public String toString() {
    StringBuilder dialogText = new StringBuilder(100);
    dialogText.append("Format: ").append(formatName).append('\n');
    dialogText.append("Contents: ").append(contents).append('\n');
    int rawBytesLength = rawBytes == null ? 0 : rawBytes.length;
    dialogText.append("Raw bytes: (").append(rawBytesLength).append(" bytes)\n");
    dialogText.append("Orientation: ").append(orientation).append('\n');
    dialogText.append("EC level: ").append(errorCorrectionLevel).append('\n');
    return dialogText.toString();
}

}` 如何使用此代码将扫描的条形码代码发送到服务器。

4

0 回答 0