5

I've a requirement. I have a working POST call ("http://localhost:8080/POSTAPI/table/testmaster/create"). I sent JSON data through postman and details got inserted into MySQL database. Now i'm trying to send the json data through apache httpcleint. but, it failed to insert into mysql database.

CloseableHttpClient client = HttpClients.createDefault();
HttpPost post = new HttpPost("http://localhost:8080/POSTAPI/table/testmaster/create");
    JSONObject testmaster = new JSONObject();
    testmaster.put("testRunId", testRunId);
    testmaster.put("testClassName", className);
    testmaster.put("testMethod", methodName);
    testmaster.put("createdBy", "leela");
    testmaster.put("createdDate", startDate);
    testmaster.put("lastUpdatedBy", "raghu");
    testmaster.put("lastUpdatedDate", endDate);
    testmaster.put("attribute1", "methodName");
    testmaster.put("attribute1Value",methodName );
    testmaster.put("attribute2", "result");
    testmaster.put("attribute2Value", successResult);
    testmaster.put("attribute3", "Test Suite");
    testmaster.put("attribute3Value", suiteName);
    testmaster.put("attribute4", "test group");
    testmaster.put("attribute4Value", TestGroup);
    testmaster.put("attribute5", "dataprovider");
    testmaster.put("attribute5Value", dataProvider);

    StringEntity stringEntity = new StringEntity(testmaster.toString());
    post.setEntity(stringEntity);
    post.setHeader("Accept", "application/json");
    post.setHeader("Content-type", "application/json");
    CloseableHttpResponse response = client.execute(post);
    System.out.println("Status: "+response.getStatusLine());

This is what i tried. if anybody have any idea of post operation through httpclient or any other alternative please let me know. Thanks in advance.

2

1 Answer 1

0

Use the following code :

private class postJsonData extends AsyncTask<Void, Integer, Boolean> {

    ProgressDialog dialog;
    String responseString = null;

    private postJsonData() {
        super();
        dialog = new ProgressDialog(MainActivity.this);
        this.dialog.setTitle("Please wait.");            
        this.dialog.setCancelable(false);
        this.dialog.show();
    }

    @Override
    protected void onPreExecute() {
        dialog.setProgress(0);
        super.onPreExecute();
    }

    @Override
    protected void onProgressUpdate(Integer... progress) {
        // Making progress bar visible
        if (this.dialog.isShowing()) {
            dialog.setProgress(progress[0]);
        }
    }

    @SuppressWarnings("deprecation")
    @Override
    protected Boolean doInBackground(Void... params) {
        Boolean result=false;

        HttpClient httpclient = new DefaultHttpClient();
        HttpPost httppost = new HttpPost("http://192.168.2.2/android/jsonpost.php");

        try {
            JSONObject testmaster = new JSONObject();

            try {
                testmaster.put("testRunId", "1");
                testmaster.put("testClassName", "className");
                testmaster.put("testMethod", "methodName");
                testmaster.put("createdBy", "leela");
                testmaster.put("createdDate", "startDate");
            } catch (JSONException e) {
                e.printStackTrace();
            }

            List<NameValuePair> nameValuePairs = new ArrayList<>();
            nameValuePairs.add(new BasicNameValuePair("json_string", testmaster.toString()));
            httppost.setEntity(new UrlEncodedFormEntity(nameValuePairs));

            // Making server call
            HttpResponse response = httpclient.execute(httppost);
            HttpEntity r_entity = response.getEntity();

            int statusCode = response.getStatusLine().getStatusCode();
            if (statusCode == 200) {
                // Server response
                responseString = EntityUtils.toString(r_entity);
                result = false;

            } else {
                responseString = "Error occurred! Http Status Code: "
                        + statusCode;
                result = false;
            }

        } catch (final ClientProtocolException e) {
            runOnUiThread(new Runnable() {
                @Override
                public void run() {
                    Toast.makeText(getApplicationContext(),
                            "ClientProtocolException : " + e.toString(),
                            Toast.LENGTH_LONG)
                            .show();
                }
            });
            result = false;
        } catch (final IOException e) {
            runOnUiThread(new Runnable() {
                @Override
                public void run() {
                    Toast.makeText(getApplicationContext(),
                            "IOException : " + e.toString(),
                            Toast.LENGTH_LONG)
                            .show();
                }
            });
            result = false;
        }

        return result;
    }

    @Override
    protected void onPostExecute(final Boolean success) {
        //progressBar.setVisibility(View.GONE);
        if (dialog.isShowing()){
            dialog.dismiss();
        }

        runOnUiThread(new Runnable() {
            @Override
            public void run() {
                Toast.makeText(getApplicationContext(),
                        "Response from Server: " + responseString ,
                        Toast.LENGTH_LONG)
                        .show();
            }
        });

        if (success){

        }else{

        }

        super.onPostExecute(success);
    }

}

Here is my php code which accepts the json string and decode into array.

<?php

if (empty($_POST['json_string'])) {
    echo "Empty json data"; 
    exit;
}else{
    $json_string = $_POST['json_string'];
}

$params = array();
$params = json_decode($json_string,true);
//echo $params['testClassName'];

var_dump($params);
?>
Sign up to request clarification or add additional context in comments.

Comments

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.