Hi Guys,

I am trying to develop an application for scanning JSON data from QR code and post to web server. 

Here is code I am using for scanning JSON data. Scanning is working fine but while uploading the application getting crashed.

Here is mainactivity java file.

package com.lab.smart.smartlabinventry;

import android.os.Bundle;
//import android.support.design.widget.FloatingActionButton;
//import android.support.design.widget.Snackbar;
import android.support.v7.app.AppCompatActivity;
//import android.support.v7.widget.Toolbar;
import android.view.View;
//import android.view.Menu;
//import android.view.MenuItem;
import android.app.Activity;
import android.app.AlertDialog;
import android.content.ActivityNotFoundException;
import android.content.DialogInterface;
import android.content.Intent;
import android.net.Uri;
//import android.os.Bundle;
//import android.view.View;
import android.widget.EditText;
//import android.widget.Toast;
import java.io.BufferedReader;
import java.io.DataOutputStream;
import java.io.IOException;
import java.io.InputStreamReader;
import java.net.HttpURLConnection;
import java.net.MalformedURLException;
import java.net.URL;



//import com.fasterxml.jackson.databind.ObjectMapper;
//import com.hmkcode.vo.Content;

public class MainActivity extends AppCompatActivity {

static final String ACTION_SCAN = "com.google.zxing.client.android.SCAN";

@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
//set the main content layout of the Activity
setContentView(R.layout.activity_main);
}

//product qr code mode
public void Scan(View v) {
try {
//start the scanning activity from the com.google.zxing.client.android.SCAN intent
Intent intent = new Intent(ACTION_SCAN);
intent.putExtra("SCAN_MODE", "QR_CODE_MODE");
startActivityForResult(intent, 0);
} catch (ActivityNotFoundException anfe) {
//on catch, show the download dialog
showDialog(MainActivity.this, "No Scanner Found", "Download a scanner code activity?", "Yes", "No").show();
}
}

//alert dialog for downloadDialog
private static AlertDialog showDialog(final Activity act, CharSequence title, CharSequence message, CharSequence buttonYes, CharSequence buttonNo) {
AlertDialog.Builder downloadDialog = new AlertDialog.Builder(act);
downloadDialog.setTitle(title);
downloadDialog.setMessage(message);
downloadDialog.setPositiveButton(buttonYes, new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialogInterface, int i) {
Uri uri = Uri.parse("market://search?q=pname:" + "com.google.zxing.client.android");
Intent intent = new Intent(Intent.ACTION_VIEW, uri);
try {
act.startActivity(intent);
} catch (ActivityNotFoundException anfe) {

}
}
});
downloadDialog.setNegativeButton(buttonNo, new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialogInterface, int i) {
}
});
return downloadDialog.show();
}

public void onActivityResult(int requestCode, int resultCode, Intent intent) {
if (requestCode == 0) {
if (resultCode == RESULT_OK) {
String contents = intent.getStringExtra("SCAN_RESULT");

EditText resultTxt = (EditText) findViewById(R.id.contents);
resultTxt.setText(contents);
resultTxt.setVisibility(View.VISIBLE);


}

}
}

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

if (requestCode == 0) {
if (resultCode == RESULT_OK) {
String contents = intent.getStringExtra("SCAN_RESULT");

try {

// 1. Web server URL
URL url = new URL("http://192.168.1.10:8080/SRNSmartLab/rest/service/storeNEdata");

// 2. Open connection
HttpURLConnection conn = (HttpURLConnection) url.openConnection();

// 3. Specify POST method
conn.setRequestMethod("POST");

// 4. Set the headers
conn.setRequestProperty("Content-Type", "application/json");
conn.setDoOutput(true);

// 5. Add JSON data into POST request body


//`5.1 Use Jackson object mapper to convert Contnet object into JSON
//ObjectMapper mapper = new ObjectMapper();

// 5.2 Get connection output stream
DataOutputStream wr = new DataOutputStream(conn.getOutputStream());

// 5.3 Copy Content "JSON" into
wr.writeBytes(contents);

// 5.4 Send the request
wr.flush();

// 5.5 close
wr.close();

// 6. Get the response
int responseCode = conn.getResponseCode();
System.out.println("\nSending 'POST' request to URL : " + url);
System.out.println("Response Code : " + responseCode);

} catch (MalformedURLException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
}

}

}



}

Here is content_main xml file.

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:paddingBottom="@dimen/activity_vertical_margin"
android:paddingLeft="@dimen/activity_horizontal_margin"
android:paddingRight="@dimen/activity_horizontal_margin"
android:paddingTop="@dimen/activity_vertical_margin"
app:layout_behavior="@string/appbar_scrolling_view_behavior"
tools:context="com.lab.smart.smartlabinventry.MainActivity"
tools:showIn="@layout/activity_main"
android:background="#143de0">

<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/Scan"
android:id="@+id/textView"
android:layout_alignParentTop="true"
android:layout_centerHorizontal="true"
android:textColor="#faf6f6"
android:textSize="30sp"/>

<RelativeLayout
android:layout_width="match_parent"
android:layout_height="match_parent">

<Button
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/Scan1"
android:id="@+id/button"
android:onClick="Scan"
android:layout_above="@+id/spinner"
android:layout_toRightOf="@+id/contents"
android:layout_toEndOf="@+id/contents" />

<Spinner
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:id="@+id/spinner"
android:layout_centerVertical="true"
android:layout_alignRight="@+id/button2"
android:layout_alignEnd="@+id/button2" />
<EditText
android:id="@+id/contents"
android:editable="false"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:layout_below="@id/spinner"
android:textColor="#fdf9f9"
android:layout_marginTop="15dp"
android:visibility="gone"
/>

<Button
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/upload"
android:id="@+id/button2"
android:onClick="onClick"
android:layout_alignTop="@+id/button"
android:layout_alignParentRight="true"
android:layout_alignParentEnd="true" />

</RelativeLayout>

</RelativeLayout>

Could you please help me short this issue